Elke variabele in de SPS krijgt automatisch het correcte datatype. De omzetting moet alleen in de interface worden ingesteld. In dit hoofdstuk worden de verschillende typen van Antcas Control uitgelegd.
Dit type kan slechts twee toestanden hebben. Waar of onwaar. In de toepassing kan in plaats van een variabele de waarde met TRUE (waar) of FALSE (onwaar) worden gedefinieerd.
Bovendien wordt het speciale type NULL gebruikt. Deze toestand wordt bij de initialisatie van een variabele, dus een onbeschreven, ingesteld. Bovendien zijn met NULL speciale functies mogelijk. Bijvoorbeeld als geen waarde naar de interface mag worden gecommuniceerd.
Een integer is een geheel getal, zoals bijvoorbeeld 0 of 26. Bovendien kan de waarde ook negatief zijn. Antcas Control werkt met een 64-bit SPS, die het berekenen van zeer grote getallen mogelijk maakt. Het grootste getal is gedefinieerd met de constante INT_MAX (9223372036854775807). Het kleinste getal is in INT_MIN of INT_MAX+1, omdat het teken een bit gebruikt. Alle getallen buiten de bereikssjablonen worden in een float met een exponent toegepast. De berekening is dan onnauwkeurig.
Een integer kan de waarde -0 krijgen, die niet gelijk is aan FALSE. Echter geeft de controle met de functie EQ(-0,0) TRUE uit. -0 Kan daarbij alleen als tekenreeks '-0' worden gedefinieerd.
Er kan ook een hex-waarde direct worden gedefinieerd. Deze begint met 0x of 0X. Zo wordt bijvoorbeeld uit 0xFF dan 255.
Een float of ook real waarde is een glijdend komma getal, zoals bijvoorbeeld 0.1 of 22.005 (met punt). Ook exponenten worden ondersteund. Bijvoorbeeld 10E2 voor 1'000 of 10e-2 voor 0.1. De hoofdletters en kleine letters zijn daarbij niet belangrijk. Er wordt gepoogd het getal in een integer te veranderen, omdat de berekening eenvoudiger is voor de SPS. Het kan gebeuren dat de berekeningen bij grote getallen onnauwkeurig worden. Het maximale aantal decimalen is vast op 14 beperkt om de prestaties van de SPS te verhogen.
Glijdende kommagetallen hebben een beperkte precisie. Hoewel dit afhankelijk is van het systeem, gebruikt Antcas Control gewoonlijk het IEEE 754 Double Precision Format, dat een maximale relatieve afrondingsfout in de orde van grootte 1.11e-16 oplevert. Niet-elementaire aritmetische operaties kunnen echter grotere fouten veroorzaken en natuurlijk moet een voortplanting van de fout worden overwogen als meerdere operaties worden samengesteld.
Bovendien zijn er rationale getallen die precies als glijdende kommagetallen met basis 10 kunnen worden weergegeven, bijvoorbeeld 0.1 of 0.7, maar er is geen exacte representatie als glijdende kommagetallen met basis 2, die intern wordt gebruikt onafhankelijk van de grootte van de mantisse. Daarom kunnen ze niet zonder een kleine precisieverlies in hun interne binaire vorm worden omgezet. Dit kan tot verwarrende resultaten leiden: FLOOR((0.1+0.7)*10) zal gewoonlijk 7 opleveren in plaats van het verwachte resultaat van 8, omdat de interne representatie iets is als 7.9999999999999991118.
Men zou zich daarom nooit tot op het laatste decimaal op glijdende kommagetallen moeten verlaten en glijdende kommagetallen nooit direct op gelijkheid moeten controleren.
Een tekstreeks of ook string genoemd, wordt gedefinieerd met een aanhalingsteken ' ' of dubbele aanhalingstekens " ". Bijvoorbeeld 'Tekst 1' of "Test!". Met de functieblok CONCAT kunnen meerdere tekstreeksen worden samengevoegd.
Een line feed of nieuwe regel kan worden gemaakt met CTRL+Enter. Dit wordt dan weergegeven door een pijl ↵.
Een escape-teken voor het aangeven van een ' of " in de tekstreeks zelf is niet nodig. De tekstreeks kan direct worden opgegeven met "Da is een " teken".
Het is mogelijk om speciale tekens rechtstreeks te declareren. Hiertoe wordt binnen de tekstreeks met dubbele aanhalingstekens de volgende reeks aangegeven:
| Escape-sequentie | ASCII-afkorting |
|---|---|
| \\ | Escaped \ |
| \n | LF |
| \r | CR |
| \r\n | CRLF |
| \0 | NUL |
| \t | TAB |
| \e | ESC |
| \f | FORMFEED |
| \x## | Willekeurig byte |
Om bijvoorbeeld een willekeurig byte 126 ofwel 7E als hex-getal te declareren, wordt de volgende uitdrukking gebruikt: "\x7E". Deze tekstreeks komt dan overeen met "~".
Hierbij staat 7E als plaatshouderwaarde. Er kunnen alle waarden binnen de hex-waarden 00 tot FF worden opgegeven. Let erop dat het UTF-8 BOM "\xEF\xBB\xBF" door de meeste browsers automatisch wordt verwijderd. Het is mogelijk om de reeks te maskeren. Hiertoe wordt een leidende backslash gebruikt: "\\x7E" dit komt dan overeen met '\x7E'.
Let op: Alle tekstreeksen buiten het UTF-8-bereik kunnen niet remanent worden opgeslagen. In de live-weergave worden deze donkerpaars weergegeven.
Zie ook het artikel Tekstreeks-conversie in getallen.
Definieert een datum en een tijd met DT# bijvoorbeeld DT#2016-03-25-22:12:00. De tijden worden omgezet in een integer in ms vanaf de datum 01.01.1970 (Dit is de waarde in de tijdzone UTC/GMT).
Definieert een datum vanaf middernacht met D# bijvoorbeeld D#2016-03-25. De tijden worden omgezet in een integer in ms vanaf de datum 01.01.1970 (Dit is de waarde in de tijdzone UTC/GMT).
Definieert een tijd in milliseconden met T# bijvoorbeeld T#5d3h5m11s500ms. De tijden worden omgezet in een integer in ms.
Een array kan niet direct worden gedefinieerd. Echter kunnen toewijzingen van een variabele met een punt worden gemaakt. Zie Variabelen.
ZEER BELANGRIJK: Definieer nooit een waarde onder in een array. Bijvoorbeeld set en set.p - De SPS zal hierbij vastlopen. En daarom niet werken. Bovendien kan dit leiden tot onverwachte fouten.