In SPAS werden weitestgehend die Festlegungen in der IEC 1131-3 (DIN EN 61131-3) zur Anwendung gebracht. Deshalb ist es sinnvoll, folgende Hinweise zu beachten, wenn Sie USAGE = Constant wählen und in INIT VALUE eintragen:
Jede Größe hat eine Identifikation über ihren Namen (NAME, IDENTIFICATION)
Jede Konstante ist auch einem Datentyp[1] zugehörig
Boolesche Größen
Sie dürfen true / false (Groß- oder Kleinbuchstaben) oder 0 / 1 verwenden.Ganze Zahlen:
SINT: -128 ..+127
INT: -32768 .. +32767
DINT: -2147483648 .. +2147483647
Große Zahlen können Sie mit "_" aufgliedern, z.B. 343_562_110. Aber bitte kein Punkt oder Komma verwenden.
Gleitkommazahlen:
REAL: -3.402823*10 hoch+38 .. 0.0 .. +3.402823*10 hoch+38
Verwenden Sie nicht mehr als 7 Ziffern
Tausender mit "_" aufteilen oder mit ","
anstelle 10 hoch.. E+38 bzw. E-38 schreiben, aber die Potenzangabe kann auch unterbleiben. Z.B. ist 234.368 eine Real-Zahl.Zeitwerte:
Gemäß IEC 1131-3 ist T# ..H ..M ..S ..MS gültige Eingabe, aber SPAS gestattet, Zeitwerte verkürzt schreiben zu dürfen. Z.B. werden auch 25,3min angenommen.
Tageszeiten und Kalenderwerte, also etwa DATE_AND_TIME ist späteren Versionen vorbehalten.Zählwerte:
Für alle Zähler gelten Werte vom Datentyp INT. Sie erhalten eine Fehlermeldung, wenn z.B. für Step 7 der Wert 999 überschreitet. Denken Sie daran, daß Sie auch mit Arithmetik alle Zählprobleme lösen können.
[1] Die Eigenschaft "Datentyp" einer Variablen bestimmt die Codierung der zur Verfügung stehenden Bit, zur Darstellung bzw. Speicherung der Variablen.
Der Typ BOOL nutzt nur ein Bit, wobei die Adressierung von Hersteller zu Hersteller der SPS recht unterschiedlich ist.In SPAS wird nach dem Byte.Bit-Prinzip adressiert. Die Kennung E, A, M oder I, O, M am einfachsten nicht davorschreiben, da sie automatisch ergänzt wird.
Byte- und Word-Typen (BYTE, WORD, DWORD, LWORD)ebenso wie Unsigned-Typen (USINT, UINT, UDINT, ULINT) schöpfen den Wertebereich der 8, 16, 32 oder 64 Bit voll aus. Unsigned-Typen sind bei konventionellen SPS wie S5 oder S7 derzeit NICHT verwendbar!
Integer-Typen (SINT, INT, DINT, LINT)nutzen das höchste Bit (niedrigstes Bit ist Bit 0), also Bit 7, 15, 31 oder 63 als Vorzeichen-Kennung, wodurch sich der Wertebereich etwa halbiert.
TIME ist ein Datentyp identisch mit DINT, jedoch vordefiniert mit der Einheit Millisekunde. Damit sind folglich 2,1474 * (10 hoch 9)ms als Höchstwert erreichbar, das sind 2,1474*(10 hoch 6)s oder 35791,33min oder 596,522h.
Real-Typen (REAL), auch Gleitkomma-Zahlen genannt, haben 32 Bit gemäß der Internationalen Norm IEEE 754 (aus dem Jahr 1985), wobei das Bit 31 als Vorzeichen genutzt wird, die Bit 30 bis 23 dienen zur Darstellung des Exponenten e und die Bit 22 bis 0 der Mantisse. Damit sind die Werte
-3.402823E+38 ... -1.175495E-38,0,+1.175495E-38 ... +3.402823E+38
darstellbar.
Neben diesen Typen gibt es noch Funktions-Baustein-Typen:
TON, TIME - Zeitbausteine /TIMER mit Zeitwert
CTUD - Zählbausteine mit Zähler-Werten i.a. vom Typ INT
R_TRIG, F_TRIG und RF_TRIG - Flanken-Erkennung
und andere. Hierzu gehören PRAP-Typen, die mit ihrer IDENTIFICATION im Projekt eingebunden sind.
Die BCD-Typen (BCD) sind in der IEC 1131-3 nicht vorgesehen, 16 und 32 Bit groß und stellen nur Ziffern im Bereich 0 bis 9 auf Tetraten (4 Bit) dar. Sie werden wie Word-Typen behandelt und sollten nur für Ausgaben z.B. an Ziffernanzeigen benutzt werden, wobei INT_TO_BCD bzw. DINT_TO_BCD zur Verfügung gestellt werden.
Weiterhin können abgeleitete, strukurierte Datentypen eingesetzt werden: