Protokollet Antcas TCP är helt öppet dokumenterat. Kommunikation sker via TCP.
Kommunikationen sker via TCP med en öppen anslutning från Antcas Control. Servern kan per gränssnitt endast vara ansluten till en klient åt gången. Porten kan fritt väljas. Standardport är 5'252. Den maximala paketstorleken är begränsad till 3'000 bytes. Flera paket kan skickas i följd. Gränssnittet har ett tidsgräns. Om ingen svar ges efter en viss tid startar processen om från början.
Anmärkning: Tecken som diakritiska tecken och specialtecken definieras i ISO-8859-1-formatet.
Alla använda variabler är case-sensitive, vilket innebär att skillnad görs mellan versaler och gemener. Här följer ett exempel på hur en enkel överföring kan vara uppbyggd:
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
Så snart en anslutning har upprättats skickar Antcas Control ett handskakningsmeddelande till klienten. Detta kan valfritt innehålla den maximala buffertstorleken i bytes, så att Antcas Control begränsar varje telegram vid sändning tills en bekräftelse returneras. Storleken på MAX_BUFFER_SIZE bör inte väljas för liten för att upprätthålla gränssnittets hastighet.
Antcas Control -> Klient:
ANTCAS_TCP\n
Antcas Control <- Klient:
OK[:MAX_BUFFER_SIZE=3000]\n
Initialiseringen sker efter handskakningen. Alla värden för datapunkterna skickas från klienten till Antcas Control. Se värdeöverföring. När överföringen är klar utlöses ett startkommando. Därefter skickar Antcas Control sina värden. Dessa filtreras efter initialiseringen. Inga datapunkter som inte existerar kommer att överföras.
Antcas Control <- Klient:
START\n
En översättningstabell kan också överföras. Detta förbättrar prestandan vid många datapunkter. Översättningen måste ske direkt efter handskakningen. Variabler kan också definieras dubbelt. Till exempel temperatur av typ INT och REAL. Datapunkterna behandlas helt separat.
Antcas Control <- Klient:
TL:x:1:Licht/1. OG/EIN\n
Här översätts Licht/1. OG/EIN till x:1 för kommunikationen. Servern skickar istället för namnet endast x:1.
För att anslutningen ska förbli öppen används en cyklisk watchdog. Den övervakar både klienten och servern. Tidsgränsen inträffar efter cirka 6 sekunder utan svar. Klienten får efter 10 sekunder utan svar från servern bryta anslutningen. Denna används endast om inga data överförs.
Antcas Control -> Klient:
KA\n
Antcas Control <- Klient:
RE\n
Alla data överförs som sträng. Datatypen definieras som prefix till värdet. En datapunkt får endast förekomma en gång, även om den har flera datatyper. Datapunkten kan också innehålla en sökväg. Till exempel:
x:Licht/1. OG/EIN:TRUE\n
eller med översättningstabell:
x:1:TRUE\n
Efter att strängen har överförts måste en bekräftelse ske, först då överförs nästa värde:
OK\n
Antcas Control <-> Klient:
x:Datenpunkt:FALSE/TRUE\n
Antcas Control <-> Klient:
ui:Datenpunkt:[0..65536]\n
Anmärkning: Andra värden måste överföras som sträng.
Antcas Control <-> Klient:
i:Datenpunkt:[-32768..32767]\n
Antcas Control <-> Klient:
r:Datenpunkt:[3.402823E-38..1.175 495E+38]\n
Antcas Control <-> Klient:
d:Datenpunkt:D#YYYY-MM-DD\n
Antcas Control <-> Klient:
t:Datenpunkt:T#5d4h3m2s1ms\n
Antcas Control <-> Klient:
dt:Datenpunkt:DT#YYYY-MM-DD[-HH:II:SS]\n
Antcas Control <-> Klient:
s:Datenpunkt:String[max. 64 tecken]\n
Varning: Att skicka en radbrytning (\n) är inte tillåtet.
Denna datatyp kommunicerar alltid endast före datautbytet och skickar alla kommande händelser för en tidsur. En implementering på SPS-nivå i Antcas Control är inte möjlig. Dock kan en kalender manipuleras i SPS.
Innan startkommandot begärs antalet önskade händelser. Värdet ligger mellan 0..255. Dessutom returneras den aktuella tiden i UTC. Denna används för närvarande endast för felanalys. Värdet är dock obligatoriskt.
Antcas Control <- Klient (innan START):
ts:Datenpunkt:s;MAX_USINT;ACTUAL_TIME\n
Den första tiden definierar tidpunkten för att slå på och den andra för att slå av. Det kan också förekomma överlappningar. För att inte belasta minnet för mycket används en ringbuffert. Detta innebär att ett värde ersätts och inte alla värden skjuts upp. Därför måste alla värden beaktas. Efter mottagandet skickas en bekräftelse tillbaka till servern. Värdet kan också vara identiskt med det ovan för att göra programmet enklare.
Antcas Control -> Klient:
ts:Datenpunkt:USINT;DT#YYYY-MM-DD-HH:II:SS;DT#YYYY-MM-DD-HH:II:SS\n
För att inga händelser ska utlösas vid en avbruten kommunikation deaktiveras alla icke aktiva poster. Detta är fallet när till- och från-ställningsläget är identiska. Den minimala tidsinställningen ligger därmed på en sekund.
Antcas Control -> Klient:
ts:Datenpunkt:USINT;DT#1970-01-01-00:00:00;DT#1970-01-01-00:00:00\n