Tipovi podataka

Svaka varijabla u PLC-u automatski dobiva točan tip podataka. Pretvorba mora biti samo podešena u sučelju. U ovom poglavlju objašnjavaju se pojedinačni tipovi Antcas Control-a.

Vrijednost istinitosti BOOL

Ovaj tip može imati samo dva stanja. Istina ili laž. Umjesto varijable u primjeni može biti definiran vrijednost s TRUE (istina) ili FALSE (laž).

Osim toga koristi se poseban tip NULL. Ovo stanje postavlja se prilikom inicijalizacije varijable, odnosno neopisane. Osim toga su s NULL moguće posebne funkcije. Na primjer ako nema vrijednosti koja treba biti komunicirana na sučelju.

Cijeli brojevi INT (Integer)

Integer je cijeli broj, kao npr. 0 ili 26. Osim toga vrijednost može biti i negativna. Antcas Control radi s 64-bit PLC-om koji omogućuje izračunavanje vrlo velikih brojeva. Najveći broj je definiran konstantom INT_MAX (9223372036854775807). Najmanji broj je u INT_MIN ili INT_MAX+1, jer predznak koristi jedan bit. Svi brojevi izvan raspona primjenjuju se u Float s eksponentom. Izračun je tada neprecizan.

Integer može dobiti vrijednost -0, koja nije jednaka FALSE. Međutim, provjera s funkcijom EQ(-0,0) daje TRUE. -0 može biti definiran samo kao niz znakova '-0'.

Može se direktno definirati i hex vrijednost. Ona počinje s 0x ili 0X. Na primjer, iz 0xFF postaje 255.

Decimalni brojevi REAL (Float)

Float ili realna vrijednost je decimalni broj, kao npr. 0.1 ili 22.005 (s točkom). Podržani su i eksponenti. Na primjer, 10E2 za 1'000 ili 10e-2 za 0.1. Velika i mala slova su nebitna. Pokuša se pretvoriti broj u Integer, jer je izračun jednostavniji za PLC. Može se dogoditi da izračuni s velikim brojevima postanu neprecizni. Maksimalan broj decimalnih mjesta fiksno je ograničen na 14 kako bi se poboljšala performansa PLC-a.

Decimalni brojevi imaju ograničenu preciznost. Iako ovo ovisi o sustavu, Antcas Control obično koristi IEEE 754 Double Precision Format, koji rezultira maksimalnom relativnom pogreškom zaokruživanja u veličini reda 1.11e-16. Nijelementarne aritmetičke operacije mogu proizvesti veće pogreške i naravno mora se uzeti u obzir propagacija pogreške ako se sastavljaju više operacija.

Osim toga postoje racionalni brojevi koji se mogu točno prikazati kao decimalni brojevi s bazom 10, na primjer 0.1 ili 0.7, ali nema točne reprezentacije kao decimalni brojevi s bazom 2, koji se unutarno koriste bez obzira na veličinu mantise. Stoga ih nije moguće pretvoriti u njihovu unutarnju binarnu reprezentaciju bez malog gubitka preciznosti. To može dovesti do zbunjujućih rezultata: FLOOR((0.1+0.7)*10) obično će dati 7 umjesto očekivanog rezultata od 8, jer je unutarnja reprezentacija nešto kao 7.9999999999999991118.

Stoga nikada ne treba ovisiti o posljednjem decimalnom mjestu decimalnih brojeva i nikada ih direktno provjeravati na jednakost.

Niz znakova STRING

Niz znakova ili string definiran je s jednostrukim navodnikom ' ' ili dvostrukim navodnikom " ". Na primjer, 'Tekst 1' ili . S blokom funkcija CONCAT mogu se spojiti više nizova znakova.

Line Feed ili novi redak može se stvoriti s CTRL+Enter. To se tada prikazuje strelicom ↵.

Escape znak za navođenje ' ili " unutar samog niza znakova nije potreban. Niz znakova može biti direktno naveden s "Ovdje ima \" znak".

Moguće je deklarirati posebne znake direktno. To se postiže unutar niza znakova sa dvostrukim navodnicima sljedećim nizom:

Escape-sekvenca Skraćenica ASCII
\\ Escaped \
\n LF
\r CR
\r\n CRLF
\0 NUL
\t TAB
\e ESC
\f FORMFEED
\x## Proizvoljni bajt

Na primjer, kako bi se deklarirao proizvoljni bajt 126 odnosno 7E kao hex broj, koristi se sljedeći izraz: "\x7E". Ovaj niz znakova tada odgovara "~".

Ovdje 7E služi kao zamjenski vrijednost. Mogu se navesti sve vrijednosti unutar hex vrijednosti od 00 do FF. Obazrite se da UTF-8 BOM "\xEF\xBB\xBF" većinom preglednika automatski uklanja. Može se maskirati niz znakova. To se postiže s vodičem backslash: "\\x7E" što tada odgovara '\x7E'.

Pažnja: Svi nizovi znakova izvan UTF-8 područja ne mogu se remanentno spremiti. U live prikazu prikazani su tamnoljubičasto.

Obazrite se i na članak Konvertiranje nizova znakova u brojeve.

Datum i vrijeme DT (Date and Time)

Definira datum i vrijeme s DT# npr. DT#2016-03-25-22:12:00. Vremena se pretvaraju u Integer u ms od datuma 01.01.1970 (Ova vrijednost je u vremenskoj zoni UTC/GMT).

Datum D (Date)

Definira datum od ponoći s D# npr. D#2016-03-25. Vremena se pretvaraju u Integer u ms od datuma 01.01.1970 (Ova vrijednost je u vremenskoj zoni UTC/GMT).

Vrijeme T (Time)

Definira vrijeme u milisekundama s T# npr. T#5d3h5m11s500ms. Vremena se pretvaraju u Integer u ms.

Niz

Niz ne može biti direktno definiran. Međutim, mogu se dodjeljivanja varijabli s točkom. Vidi Varijable.

IZRAZITO VAŽNO: Nikada ne definirajte vrijednost ispod u nizu. Npr. set i set.p - PLC će se ovdje blokirati. I stoga neće raditi. Osim toga može dovesti do neočekivanih pogrešaka.