Datatyper

Hver variabel i SPS får automatisk den korrekte datatype. Omforminga må berre stillast inn i grensesnittet. I dette kapitlet blir dei individuelle typane frå Antcas Control forklarte.

Sannhetsverdi BOOL

Denne typen kan berre ha to tilstandar. Sant eller usant. I bruksområdet kan verdien med TRUE (sant) eller FALSE (usant) definerast i staden for ei variabel.

I tillegg blir den spesielle typen NULL brukt. Denne tilstanden blir sett når ein variabel initialiserast, altså ei ubrukt. I tillegg er det mogleg å bruke NULL for spesialfunksjonar. Til dømes når ingen verdi kan kommuniserast til grensesnittet.

Heiltal INT (Integer)

Ei integer er eit heiltal, som til dømes 0 eller 26. I tillegg kan verdien òg vere negativ. Antcas Control arbeider med ei 64-bitar SPS, som gjer berekninga av svært store tal mogleg. Det største talet er definert med konstanten INT_MAX (9223372036854775807). Det minste talet er i INT_MIN eller INT_MAX+1, sidan teiknet bruker eit bit. Alle tal utanfor området blir brukt med ei flytande desimal med ein eksponent. Berekninga er då unøyaktig.

Ei integer kan få verdien -0, som ikkje er lik FALSE. Men prøvinga med funksjonen EQ(-0,0) gir TRUE ut. -0 kan berre definerast som ei streng '-0'.

Det er òg mogleg å definere eit hex-verdi direkte. Dette byrjar med 0x eller 0X. Til dømes blir det frå 0xFF255.

Flytande desimaltal REAL (Float)

Ei flytande desimal eller òg real verdi er eit flyttall, som til dømes 0.1 eller 22.005 (med punkt). Eksponentar blir òg støtta. Som til dømes 10E2 for 1'000 eller 10e-2 for 0.1. Stor- og liten bokstav er her uanselig. Det blir forsøkt å omforme talet til ei integer, sidan berekninga er enklare for SPSen. Det kan skje at berekningane ved store tal blir unøyaktige. Det maksimale antalet desimalar er fast på 14 for å auka ytelsen til SPSen.

Flytande desimaltal har ein begrensa nøyaktighet. Selv om dette er avhengig av systemet, bruker Antcas Control vanlegvis IEEE 754 Double Precision Format, som gjev ein maksimal relativ avrundingsfeil på ei størrelsesorden 1.11e-16. Ikkje-elementary aritmetiske operasjonar kan likevel føre til større feil og naturlig må ein ta hensyn til at feilen spreier seg når fleire operasjonar blir kombinert.

I tillegg finst det rasjonale tal som kan representerast nøyaktig som flytande desimaltal med basis 10, til dømes 0.1 eller 0.7, men som ikkje har nøyaktig representasjon som flytande desimaltal med basis 2, som blir brukt internt uavhengig av storleiken på mantissa. Derfor kan dei ikkje omformast til sin interne binære representasjon utan ein liten nøyaktighetsfeil. Dette kan føre til forvirrande resultat: FLOOR((0.1+0.7)*10) vil vanlegvis gi 7 i staden for det venta resultatet på 8, sidan den interne representasjonen er noko som 7.9999999999999991118.

Ein bør aldri stole på flytande desimaltal til den siste desimalen og aldri prøve flytande desimaltal direkte for likskap.

Tekststreng STRING

Ei tekststreng eller òg kalla streng, blir definert med eit enkelt anføringsteikn ' ' eller dobbelt anføringsteikn " ". Som til dømes 'Tekst 1' eller "Test!". Med funksjonsblokken CONCAT kan fleire tekststrengar kombinereast.

Ei linjeskift eller ny rad kan lageast med CTRL+Enter. Dette blir så representert med ei pil ↵.

Eit escape-teikn for å angi eit ' eller " i tekststrengen sjølv er ikkje nødvendig. Tekststrengen kan angast direkte med "Det er eit " teikn".

Det er mogleg å deklarere spesialteikn direkte. For dette blir følgjande sekvens angitt innanfor tekststrengen med dobbelt anføringsteikn:

Escape-sekvens ASCII-forkorting
\\ Escaped \
\n LF
\r CR
\r\n CRLF
\0 NUL
\t TAB
\e ESC
\f FORMFEED
\x## Valfritt byte

For å til dømes deklarere eit valfritt byte 126 eller 7E som ein hex-tal, blir følgjande uttrykk brukt: "\x7E". Denne tekststrengen svarar då til "~".

Her står 7E som ein plasshaldarverdi. Alle verdiar innanfor hex-verdiane 00 til FF kan angast. Merk at UTF-8 BOM "\xEF\xBB\xBF" blir fjerna automatisk av dei fleste nettlesarane. Det er mogleg å maskere tekststrengen. For dette blir eit leiar-backslash brukt: "\\x7E" som svarar til '\x7E'.

Advarsel: Alle tekststrengar utanfor UTF-8-området kan ikkje lagrast permanent. I live-visninga blir desse vist i mørk lilla.

Sjå òg artikkelen Konvertering av Tekststreng til Tall.

Dato og Tid DT (Date and Time)

Definerer ein dato og ei tid med DT# til dømes DT#2016-03-25-22:12:00. Tidene blir omforma til ei integer i ms frå datoen 01.01.1970 (Denne verdien er i tidssona UTC/GMT).

Dato D (Date)

Definerer ein dato frå midnatt med D# til dømes D#2016-03-25. Tidene blir omforma til ei integer i ms frå datoen 01.01.1970 (Denne verdien er i tidssona UTC/GMT).

Tid T (Time)

Definerer ein tid i millisekund med T# til dømes T#5d3h5m11s500ms. Tidene blir omforma til ei integer i ms.

Array

Ei array kan ikkje definerast direkte. Men det er mogleg å tildele ei variabel med eit punkt. Sjå Variabler.

SVÆRT VIKTIG: Definer aldri ein verdi under i ei array. Til dømes set og set.p - SPSen vil her krasje. Og difor ikkje kjøre. I tillegg kan dette føre til uventa feil.