Azon a protokoll, az Antcas TCP teljesen nyíltan dokumentált. A kommunikáció TCP-n keresztül történik.
A kommunikáció TCP-n keresztül történik egy nyitott kapcsolattal az Antcas Control-ból. A szerver mindig csak egy klienssel tud csatlakozni egy interfészenként. A port szabadon választható. Az alapértelmezett port a 5'252. A maximális csomagméret 3'000 bájtra korlátozódik. Több csomagot is egymás után át lehet küldeni. Az interfész rendelkezik egy időkorlátossal. Ha bizonyos időn belül nem érkezik meg válasz, az eljárás újra kezdődik.
Megjegyzés: Betűk mint umlautok és speciális karakterek az ISO-8859-1 formátumban vannak meghatározva.
Az összes használt változó érzékeny a nagy- és kisbetűkre, ami azt jelenti, hogy megkülönbözteti a nagy- és kisbetűket. Itt van egy példa, ahogyan egy egyszerű átvitel lehet felépítve:
ANTCAS_TCP
OK:3000
TL:x:1:Licht/1. OG/EIN
TL:ui:1:Licht/1. OG/DIM
START
x:1:TRUE
OK
KA
RE
Amiután egy kapcsolat létrejött, az Antcas Control egy handshaket küld a kliensnek. Ez opcionálisan tartalmazhatja a maximális buffer méretét bájtokban, hogy az Antcas Control minden üzenetet korlátozhat, amíg vissza nem kap megerősítést. Az MAX_BUFFER_SIZE mérete ne legyen túl kicsi, hogy a kommunikáció sebessége magas maradjon.
Antcas Control -> Kliens:
ANTCAS_TCP\n
Antcas Control <- Kliens:
OK[:MAX_BUFFER_SIZE=3000]\n
Az inicializálás a handshake után történik. Az összes érték az adatpontokról a klienstől az Antcas Controlhoz kerül küldésre. Lásd: Érték átvitel. Ha az átvitel befejeződött, egy START parancs kerül kiadásra. Ezután az Antcas Control küldi el az értékeket. Ezek az inicializálás után lesznek szűrve. Tehát nem kerül átvitelre olyan adatpont, amely nem létezik.
Antcas Control <- Kliens:
START\n
Azonban egy fordítástáblázat is át lehet küldeni. Ez növeli a teljesítményt sok adatpont esetén. A fordítás közvetlenül a handshake után kell történjön meg. A változókat duplán is definiálhatjuk. Például hőmérséklet INT és REAL típusú. Az adatpontok teljesen külön vannak kezelve.
Antcas Control <- Kliens:
TL:x:1:Licht/1. OG/EIN\n
Itt a Licht/1. OG/EIN fordítva lesz x:1-re a kommunikációhoz. A szerver helyette csak x:1-et küld.
A kapcsolat nyitva maradása érdekében egy ciklusos watchdogot használunk. Ez figyeli a klienst és a szervert is. Az időkorlát 6 másodperc után lép be, ha nem érkezik meg válasz. A kliens 10 másodperc után zárhatja a kapcsolatot, ha nem érkezik meg válasz a szervertől. Ez csak akkor használatos, ha nincs adat átvitel.
Antcas Control -> Kliens:
KA\n
Antcas Control <- Kliens:
RE\n
Az összes adat stringként kerül átvitelre. Az adattípus a érték előtagjaként van meghatározva. Egy adatpont csak egyszer jelenhet meg, még akkor is, ha több adattípust tartalmaz. Az adatpont egy útvonalat is tartalmazhat. Például:
x:Licht/1. OG/EIN:TRUE\n
vagy fordítástáblázattal:
x:1:TRUE\n
Amiután a string át lett küldve, egy megerősítésre van szükség, csak akkor kerül az következő érték átvitelre:
OK\n
Antcas Control <-> Kliens:
x:Datenpunkt:FALSE/TRUE\n
Antcas Control <-> Kliens:
ui:Datenpunkt:[0..65536]\n
Megjegyzés: Más értékeket stringként kell átvitelre küldeni.
Antcas Control <-> Kliens:
i:Datenpunkt:[-32768..32767]\n
Antcas Control <-> Kliens:
r:Datenpunkt:[3.402823E-38..1.175 495E+38]\n
Antcas Control <-> Kliens:
d:Datenpunkt:D#YYYY-MM-DD\n
Antcas Control <-> Kliens:
t:Datenpunkt:T#5d4h3m2s1ms\n
Antcas Control <-> Kliens:
dt:Datenpunkt:DT#YYYY-MM-DD[-HH:II:SS]\n
Antcas Control <-> Kliens:
s:Datenpunkt:String[max. 64 karakter]\n
Figyelmeztetés: A sorvég jel (\n) küldése nem engedélyezett.
Ez az adattípus mindig csak a adatcseré előtt kommunikál és küldi el az összes jövőbeli eseményt egy időzítőszervezőnek. Egy implementáció SPS szinten az Antcas Control-ban nem lehetséges. Viszont egy naptár manipulálható a SPS-ben.
A START parancs előtt a kívánt események számát kérdezik le. Az érték tartománya 0..255. Emellett visszaadja az aktuális időpontot UTC-ben. Ez jelenleg csak a hibaelemzéshez szolgál. Az érték azonban szükséges.
Antcas Control <- Kliens (START előtt):
ts:Datenpunkt:s;MAX_USINT;ACTUAL_TIME\n
Az első időpont meghatározza a bekapcsolás időpontját, és a második az kikapcsolásét. Összehasonlítás is előfordulhat. A memóriaterhelés csökkentése érdekében egy körgyűrűs memóriát használunk. Ez azt jelenti, hogy egy értéket helyettesítünk, és nem mindent eltolunk. Ezért minden értéket figyelembe kell venni. A fogadás után egy megerősítés küldésre kerül a szervernek. Az érték azonos is lehet a fentivel, hogy a program egyszerűbb legyen.
Antcas Control -> Kliens:
ts:Datenpunkt:USINT;DT#YYYY-MM-DD-HH:II:SS;DT#YYYY-MM-DD-HH:II:SS\n
Azonban, ha a kommunikáció megszakad, akkor sem kerül esemény kiváltásra, minden nem aktív bejegyzés deaktiválva lesz. Ez az eset, ha a bekapcsolás és kikapcsolás állapot azonos. A minimális kapcsolási idő így egy másodperc.
Antcas Control -> Kliens:
ts:Datenpunkt:USINT;DT#1970-01-01-00:00:00;DT#1970-01-01-00:00:00\n