Datentypen

Es gibt zwei Typen von Variablen.

 

Hinweis:

 

Basisvariablen

Die folgende Liste enthält eine Übersicht der Typen von Basisvariablen.

Datentyp

Beschreibung

BOOL Diese Variable speichern entweder 0 oder 1.
SINT, USINT, INT, UINT, DINT, UDINT, LINT, ULINT, BYTE Diese Variablen speichern Ganzzahlwerte. Die Verarbeitung ist schneller im Vergleich zu Gleitkommavariablen.

WORD, DWORD, LWORD

Diese Variablen speichern Worttypwerte.

STRING, WSTRING

Diese Variablen speichern Textzeichenfolgen.

REAL, LREAL

Diese Variablen speichern Gleitkommawerte. REAL-Variablen können größere Werte (wie etwa Kalkulationen und Konstanten) als Variablen vom Typ Ganzzahl speichern.

TIME, DATE, TIME_OF_DAY, DATE_AND_TIME

Diese Variablen speichern Uhrzeit- und Datumswerte.

SINT, USINT, INT, UINT, DINT, UDINT, LINT, ULINT, BYTE

Datentyp

Mit Vorzeichen

Datenlänge

Datenbereich

SINT

2er-Komplement

8 Bit

-128 - 127

USINT

-

8 Bit

0 - 255

INT

2er-Komplement

16 Bit

-32768 - 32767

UINT

-

16 Bit

0 - 65535

DINT

2er-Komplement

32 bit

-2147483648 - 2147483647

UDINT

-

32 bit

0 - 4.294.967.295

LINT

2er-Komplement

64 Bit

-9.223.372.036.854.775.808 - 9.223.372.036.854.775.807

ULINT

-

64 Bit

0 - 18.446.744.073.709.551.615

BYTE

-

8 Bit

0 - 255

WORD, DWORD, LWORD

Datentyp Datenlänge Datenbereich

WORD

16 Bit

0 - 65.535

DWORD

32 bit

0 - 4.294.967.295

LWORD

64 Bit

0 - 18.446.744.073.709.551.615

STRING, WSTRING

Datentyp Beschreibung

STRING

Speichert Texte bis zu 512 Bytes.

Bei Verwendung einer externen Variable wird die Zeichenfolgencodierung durch die Eigenschaft [Zeichenfolgencodierung] der Variable definiert.

Verfügbare Zeichenfolgenkodierungswerte sind: UTF8, UTF16, ShiftJIS, Code Page850, GB2312, BIG5, KSC5601, CodePage1251, CodePage874 und CodePage1252.

Hinweis:

  • Sie können die Zeichenfolgenkodierung auch in den Geräteeigenschaften konfigurieren. Die Einstellung der Variableneigenschaften hat Vorrang gegenüber den Geräteeigenschaften. Wählen Sie in der Eigenschaft [Zeichenfolgencodierung] der Variable die Option [Geräteeinstellungen - Typ], um die Zeichenfolgencodierung des Geräts anzuwenden.
  • Die Eigenschaft [Zeichenfolgencodierung] wird nur angezeigt, wenn der Treiber die Zeichenfolgencodierung unterstützt.

WSTRING

Speichert Wörter bis zu 512 Bytes in Doppel-Byte-Texten.

Der Datentyp WSTRING kann nur mit externen Variablen verwendet werden.

Die Zeichenfolgencodierung ist auf UTF16 festgelegt. Die Einstellung [Zeichenfolgencodierung] kann in den Variableneigenschaften nicht geändert werden, und die Kodierung in den Geräteeigenschaften wird ignoriert.

Hinweis:

  • Sie können die Anzahl der Bytes oder Wörter, die in der Variable gespeichert werden können, in der Eigenschaft [Anzahl Bytes/Wörter] festlegen.

  • Das Ende der Textzeichenfolge mit NULL (0x00) oder [Anzahl Bytes] wird erkannt.

  • Wenn Sie für eine ausgewählte Variable oder einen ausgewählten Treiber einen Text verwenden, dessen Zeichencode von der [Zeichenfolgencodierung] nicht umgewandelt werden kann, wird das Ende der Zeichenfolge am Zeichencode erkannt.

  • Die Beziehung der Hoch-/Tief-Reihenfolge für Wortdaten hängt vom [Zeichenfolge-Modus] im gewählten Treiber ab.

REAL, LREAL

Datentyp Datenlänge Datenbereich
REAL

32 bit

+/-3.402823E38 ... +/-1.1754944E-38

LREAL

64 Bit

+/-4.19E-307 ... +/-1.67E308

Hinweis:

  • Die Datenpräzision von REAL-Variablen ist auf sieben Stellen beschränkt. Wenn die Datenpräzision erforderlich ist (wie bei Vergleichsoperationen), sollten Sie Ganzzahlvariablen verwenden.
    Beispiele
    Beispiel 1: Der Wert 1.2345678 wird als ungefährer Wert ausgegeben, da die achte Ziffer weggelassen wird (nach 1.234567).
    Beispiel 2: Der in einer REAL-Variable gespeicherte Wert 0.1 könnte als 0.1000000014901161 ausgegeben werden.

  • Bei der Verwendung externer REAL-Variablen sollten Sie sicherstellen, dass die Einstellung "Doppelwortstruktur" im Dialogfeld "Gerätekonfiguration" den Einstellungen des Geräts entspricht. Wenn die Einstellungen nicht übereinstimmen, werden die Werte der REAL-Variablen nicht ordnungsgemäß angezeigt.

  • Verwenden Sie den Punkt (.) als Dezimalpunkt für den Variablenwert. Das Komma (,) wird als Dezimaltrennzeichen nicht unterstützt.
    Auch wenn in der Bildschirmbearbeitungs-Software oder im Anzeigegerät ein Komma (,) als Dezimalpunkt des Variablenwerts verwendet wird, führt dies zu unerwarteten Ergebnissen, z.B. dass ein Fehler angezeigt oder das Komma ignoriert wird usw.

TIME, DATE, TIME_OF_DAY, DATE_AND_TIME

Datentyp Beschreibung Datenbereich

TIME

Speichert die abgelaufene Zeit in Tagen und Zeitangaben. - 24 d 20 h 31 m 23 s 648 ms ... 24 d 20 h 31 m 23 s 647 ms

Hinweis: Wenn ein negativer Wert für die Eigenschaften [Initialwert] und [Eingabebereich] in einer TIME-Variablen festgelegt ist, wird das negative Vorzeichen für jede Zeiteinheit angezeigt. (Beispiel: -24d -20:-31:-23.-648)

DATE Speichert das Datum.

Bei Verwendung der Open Box SP5000-Serie (Modell für Windows 10 IoT Enterprise), IPC-Serie oder PC/AT

1970/01/01 ... 2106/02/07

Andere Modelle als oben aufgelistet

1970/01/01 ... 2038/01/19

TIME_OF_DAY Speichert die Zeit. 00:00:00 ... 23:59:59

DATE_AND_TIME

Kombiniert DATE und TIME_OF_DAY.

Bei Verwendung der Open Box SP5000-Serie (Modell für Windows 10 IoT Enterprise), IPC-Serie oder PC/AT
1970/01/01 00:00:00 UTC ... 2106/02/07 06:28:15 UTC

Andere Modelle als oben aufgelistet
1970/01/01 00:00:00 UTC ... 2038/01/19 03:14:07 UTC

Hinweis:

  • Bei Verwendung dieser Variablen, müssen die Datentypen des externen Gerätes mit dem Wert der gespeicherten Daten übereinstimmen.
    Wenn Sie einen Wert eingegeben haben, der nicht im Bereich der externen Geräteadresse liegt, wird der eingegebene Wert auf dem Bildschirm angezeigt, aber nicht in der externen Geräteadresse eingerichtet.

  • Wenn Sie Variablen mit unterschiedlichen Datentypen zuweisen, wird manchmal der Wert der Quellvariable mit einem allgemeinen Ergebniswert überschrieben.

    Beispiel – Konvertieren einer Realvariable in eine Ganzzahlvariable: Richten Sie die REAL-Variable mit 123.4 ein, schreiben Sie den Wert dann in eine INT- Variable, und das Ergebnis wird mit 123 ausgegeben. Der Wert der REAL-Variable wird ebenfalls mit 123 aktualisiert.

  • Wenn ein Ganzzahlwert von einem externen Gerät in die Variable DATE_AND_TIME eingesetzt wird, wird der gespeicherte Wert entsprechend der Zeitzone des Anzeigegeräts angepasst. Daher unterscheiden sich das Datum und die Uhrzeit, die von einer Datums-/Zeitanzeige angezeigt werden, bei der Eingabe von Ganzzahlwerten je nach Zeitzone.

Open Box SP5000-Serie (Modell für Windows 10 IoT Enterprise), IPC-Serie oder PC/AT

Ganzzahlwerteingabe über externes Gerät UTC+0 (Bereich: 1970/01/01 00:00:00 ... 2106/02/07 06:28:15) UTC+9 (Bereich: 1970/01/01 09:00:00 ... 2106/02/07 15:28:15)
0 1970/01/01 00:00:00 2106/02/07 06:28:16
1 1970/01/01 00:00:01 2106/02/07 06:28:17
: : :
32399 1970/01/01 08:59:59 2106/02/07 15:28:15
32400 1970/01/01 09:00:00 1970/01/01 09:00:00
: : :
4294967295 2106/02/07 06:28:15 2106/02/07 06:28:15


Andere Modelle als oben aufgelistet

Ganzzahlwerteingabe über externes Gerät UTC+0 (Bereich: 1970/01/01 00:00:00 ... 2038/01/19 03:14:07) UTC+9 (Bereich: 1970/01/01 09:00:00 ... 2038/01/19 12:14:07)
0 1970/01/01 00:00:00 2038/01/19 03:14:08
1 1970/01/01 00:00:01 2038/01/19 03:14:09
: : :
32399 1970/01/01 08:59:59 2038/01/19 12:14:07
32400 1970/01/01 09:00:00 1970/01/01 09:00:00
: : :
2147483647 2038/01/19 03:14:07 2038/01/19 03:14:07

Variablen des Benutzerdatentyps

Im Folgenden werden Variablen vom Typ Benutzerdaten vorgestellt.

 

Hinweis: Feld- und Strukturhalter werden ebenfalls zu den Variablen gezählt.

 

Feldvariablen

Ein Feld umfasst eine Gruppe von Variablen desselben Datentyps. Jede Variable in einem Feld wird als Element bezeichnet.

Um zu verstehen, wie eine Feldvariable funktioniert, können Sie sich eine Variable als Schachtel vorstellen. Die im folgenden Diagramm dargestellte Variable "Nummer" ist eine einzelne Schachtel, die einen Wert enthält.

Stellen Sie sich ein Feld wie eine Reihe von Schachteln vor, die jeweils mit einer Nummer versehen wurden. Im folgenden Diagramm enthält die Feldvariable "Nummer" die 5 Elemente 0 bis 4. In jeder der 5 Schachteln sind Variablenwerte gespeichert.

Um die einzelnen Variablen in einem Feld anzugeben, geben Sie den Variablennamen, gefolgt von der Elementnummer, in eckigen Klammern [ ] an.

Beispiel: Feld mit 5 Elementen

Die Elementnummer beginnt normalerweise mit 0, kann aber auch mit einem positiven oder negativen Wert beginnen.

Beispiel: Feld beginnend mit Elementnummer -1 mit 5 Elementen

 

 

Ein mehrdimensionales Feld ist ein Feld, das andere Felder enthält. Ein Feld, das zwei DINT-Felder enthält, ist zum Beispiel ein zweidimensionales Feld.

 

Anzahl der Elemente in den einzelnen Dimensionen und Dimensionseinstellungen

Legen Sie im Fenster [Projekt-Explorer] unter [Variablen] → [Alle Benutzerdatentypen] → [Felder] in der Spalte [Dimension] sowohl die Feld-Dimension als auch die Anzahl der Elemente fest.

Im Folgenden werden die Schritte zur Gestaltung eines Felds beschrieben.

Vorgehensweise zur Konzeption (Variablen, Feld, Struktur)

Bei einem 1-dimensionalen Feld sind nur die Elemente des Feld anzugeben.

Beispiel: Für ein 1-dimensionales Feld mit der Anzahl der Elemente = 3, geben Sie „3“ ein.

 

 

Bei einem mehrdimensionalen Feld geben Sie im Feld [Dimension] die Anzahl der Elemente in den einzelnen Dimensionen an, getrennt durch ein Komma (,).

Beispiel: Für ein zweidimensionales Feld, bei dem die erste Dimension 3 Elemente (Startnummer = 0) und die zweite Dimension 4 Elemente (Startnummer = 0) hat, geben Sie „3,4“ ein.

 

 

Diese Feld-Definition wird verwendet, um die unten abgebildete Feldvariable Var1 zu erstellen.

 

 

Hinweis: Um die Startnummer eines Elements auf etwas anderes als 0 zu einzustellen, geben Sie anstelle der Anzahl der Elemente die Anfangs- und die letzte Elementnummer ein, die durch zwei Punkte (..) getrennt sind, und das Feld [Anzahl Elemente] berechnet die Gesamtzahl der Elemente.

 

Beispiel: Um ein zweidimensionales Feld einzurichten, bei dem die erste Dimension 3 Elemente hat, beginnend mit Element 0, und die zweite Dimension 4 Elemente hat, beginnend mit Element 3, geben Sie „3,3..6“ ein.

 

Nach der Eingabe wird „3..6“ in 4 Elemente umgewandelt, und die Array-Dimension beginnt bei Element Nummer 3.

 

 

Mit diesem Feld wird die unten abgebildete Feldvariable Var1 erstellt.

 

 

Indirekte Feldadressierung

Die indirekte Adressierung ist der schnellste Weg, um auf einen Variablenwert innerhalb eines Bereichs aufeinanderfolgender Werte in einem Feld zuzugreifen, den Speicherverbrauch zu minimieren und den Wert innerhalb von Millisekunden zu aktualisieren.

Zur indirekten Adressierung von Feldern geben Sie die Feld-Elementnummer über einen Variablenwert oder den Eigenschaftswert eines Objekts an, um das Element eines Felds dynamisch anzugeben.

Hinweis:

Bei der indirekten Angabe einer Elementnummer mit dem Eigenschaftswert eines Objekts geben Sie „$GraphicalObject“ vor dem Objektnamen ein.
Je nach Eingabehilfefunktion können Sie nach der Eingabe von „$“ in das Eingabe- oder Quelleigenschaftsfeld aus der Liste der Optionen„$GraphicalObject“ auswählen, um die Zeichenfolge einfach einzugeben.

 

Die indirekte Feldadressierung unterstützt Folgendes:

 

Strukturvariablen

Eine Struktur ist eine Variable, die mehrere andere Variablen enthält. Jede Variable in einer Struktur wird als Element bezeichnet. Die Elemente können einen beliebigen Datentyp aufweisen.

Sie können eine verschachtelte Struktur erstellen, indem Sie eine weitere Struktur oder ein Feld als Element hinzufügen.

Stellen Sie sich eine Struktur als eine Reihe von Schachteln vor, von denen jede mit einem Element verknüpft ist.

Im folgenden Diagramm enthält die Strukturvariable DATA 3 Elemente. In jeder der 3 Schachteln sind Variablenwerte gespeichert.

Operation: Wenn Eingabewert außerhalb des Eingabebereichs liegt

Wenn der in der Variable zu speichernde Wert außerhalb des Bereiches (Minimal- und Maximalwert) liegt, wird der Wert folgendermaßen verarbeitet.

 

Hinweis:

  • Weitere Informationen über die OperationenWertänderung erhalten Sie unter Wertänderung.

 

Wenn der Wert im externen Gerät überstiegen wird

Datentyp Beschreibung

STRING, WSTRING

Speichert das passende Zeichen.
Andere als oben aufgelistet

Der Wert des Teils, der den Eingabebereich überschreitet, wird vom unteren Bereich des Eingabebereiches ausgehend neu gezählt und gespeichert.

Beispiel) 8-Bit-Variable ohne Vorzeichen (Wertbereich: 0...255)

Beispiel 1: Wenn Sie versuchen, 256 zu speichern, wird in der Variable 0 gespeichert. (Da die Obergrenze durch 1 überschritten wurde, wird der untere Grenzwert von 0 gespeichert.)

Beispiel 2: Wenn Sie versuchen, 257 zu speichern, wird in der Variable 1 gespeichert. (Da die Obergrenze durch 2 überschritten wurde, wird der zweite Grenzwert von unten ausgehend mit 1 gespeichert.)

 

Wenn der Wert in einer Operation [Loop]durchWertänderung überstiegen wird

Der Wert des Teils, der den Eingabebereich überschreitet, wird vom unteren Bereich des Eingabebereiches ausgehend neu gezählt und gespeichert.

(Beispiel): 8-Bit-Variable ohne Vorzeichen (Wertebereich: 0...255)

Beispiel 1: Wenn Sie versuchen, 256 zu speichern, wird in der Variable 0 gespeichert. (Da die Obergrenze durch 1 überschritten wurde, wird der untere Grenzwert von 0 gespeichert.)

Beispiel 2: Wenn Sie versuchen, 257 zu speichern, wird in der Variable 1 gespeichert. (Da die Obergrenze durch 2 überschritten wurde, wird der zweite Grenzwert von unten ausgehend mit 1 gespeichert.)

Wenn der Wert durch Wertänderung [Stop] überschritten wird

Datentyp Beschreibung

STRING, WSTRING

Speichert das passende Zeichen.
Andere als oben aufgelistet

Im Folgenden wird auf- oder abgerundet.

  • BOOL
    1/0
  • SINT
    127/-128
  • USINT, BYTE
    255/0
  • INT
    32767/-32768
  • UINT, WORD
    65535/0
  • DINT
    2147483647/-2147483648
  • UDINT, DWORD
    4294967295/0
  • LINT
    9223372036854775807/-9223372036854775808
  • ULINT, LWORD
    18446744073709551615/0
  • REAL, LREAL
    Fällt unterschiedlich aus; je nach Einstellungen der Eigenschaft.
  • TIME
    2147483647/-2147483648
  • DATE/TIME_OF_DAY, DATE_AND_TIME
    4294967295/0

 

Wenn der Wert in Operationen wie (Setzen), indirekt festgelegter Wert oder Ausdruck-Konverter durch eine Wertänderung [Set] überschritten wird

Der Wert wird nicht gespeichert.

Wenn der Wert durch ein Rezept überstiegen wird

Datentyp Beschreibung

BOOL, REAL, LREAL

Der Wert wird nicht gespeichert.

LINT, ULINT, LWORD

Im Folgenden wird auf- oder abgerundet.

  • LINT
    9223372036854775807/-9223372036854775808
  • ULINT, LWORD
    18446744073709551615/0

STRING, WSTRING

Speichert das passende Zeichen.
Andere als oben aufgelistet

Der Wert des Teils, der den Eingabebereich überschreitet, wird vom unteren Bereich des Eingabebereiches ausgehend neu gezählt und gespeichert.

(Beispiel): 8-Bit-Variable ohne Vorzeichen (Wertebereich: 0...255)

Beispiel 1: Wenn Sie versuchen, 256 zu speichern, wird in der Variable 0 gespeichert. (Da die Obergrenze durch 1 überschritten wurde, wird der untere Grenzwert von 0 gespeichert.)

Beispiel 2: Wenn Sie versuchen, 257 zu speichern, wird in der Variable 1 gespeichert. (Da die Obergrenze durch 2 überschritten wurde, wird der zweite Grenzwert von unten ausgehend mit 1 gespeichert.)