Protokollet Antcas TCP er helt åpent dokumentert. Kommunikasjonen skjer via TCP.
Kommunikasjonen skjer via TCP med en åpen forbindelse fra Antcas Control. Serveren kan per grensesnitt bare kobles til én klient av gangen. Porten kan velges fritt. Standard er port 5'252. Den maksimale pakke størrelsen er begrenset til 3'000 bytes. Det kan sendes flere pakker etter hverandre. Grensesnittet har en tidsavbrudd. Hvis det ikke gis svar etter en stund, starter prosessen på nytt.
Merk: Tegn som diakritiske tegn og spesialtegn er definert i ISO-8859-1-formatet.
Alle brukte variabler er case-sensitive, noe som betyr at det skilles mellom store og små bokstaver. Her er et eksempel på hvordan en enkel overføring kan være bygget opp:
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 forbindelse er etablert, sender Antcas Control et handshake til klienten. Dette kan valgfritt inneholde den maksimale bufferstørrelsen i bytes, slik at Antcas Control begrenser hvert telegram ved sending, inntil en bekreftelse returneres. Størrelsen på MAX_BUFFER_SIZE bør ikke velges for liten for å opprettholde hastigheten til grensesnittet.
Antcas Control -> Klient:
ANTCAS_TCP\n
Antcas Control <- Klient:
OK[:MAX_BUFFER_SIZE=3000]\n
Initialiseringen skjer etter handshaken. Alle verdier for datapunktene sendes fra klienten til Antcas Control. Se Verdier overføre. Når overføringen er fullført, utløses en startkommando. Deretter sender Antcas Control sine verdier. Disse filtreres etter initialiseringen. Det betyr at ingen datapunkt overføres hvis den ikke eksisterer.
Antcas Control <- Klient:
START\n
En oversettelsestabell kan også overføres. Dette øker ytelsen ved mange datapunkter. Oversettingen må skje umiddelbart etter handshaken. Variabler kan også defineres dobbelt. For eksempel temperatur av typen INT og REAL. Datapunktene behandles helt separat.
Antcas Control <- Klient:
TL:x:1:Licht/1. OG/EIN\n
Her oversettes Licht/1. OG/EIN til x:1 for kommunikasjon. Serveren sender i stedet for navnet bare x:1.
For å holde forbindelsen åpen, brukes en syklisk watchdog. Denne overvåker både klienten og serveren. Tidsavbruddet inntreffer etter ca. 6s uten svar. Klienten kan etter 10 sekunder uten svar fra serveren avslutte forbindelsen. Denne brukes bare hvis ingen data overføres.
Antcas Control -> Klient:
KA\n
Antcas Control <- Klient:
RE\n
Alle data overføres som en streng. Datatypen defineres som prefiks for verdien. Et datapunkt kan bare oppstå én gang, selv om det har flere datatyper. Datapunktet kan også inneholde en sti. For eksempel:
x:Licht/1. OG/EIN:TRUE\n
eller med oversettelsestabell:
x:1:TRUE\n
Etter at strengene er overført, må det sendes en bekreftelse før neste verdi overføres:
OK\n
Antcas Control <-> Klient:
x:Datenpunkt:FALSE/TRUE\n
Antcas Control <-> Klient:
ui:Datenpunkt:[0..65536]\n
Merk: Andre verdier må overføres som en streng.
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 tegn]\n
Advarsel: Å sende en linjeskift (\n) er ikke tillatt.
Denne datatypen kommuniserer alltid bare før databyttet og sender alle kommende hendelser for en tidsstyrt bryter. En implementering på SPS-nivå i Antcas Control er ikke mulig. Imidlertid kan en kalender manipuleres i SPS.
Før startkommandoen spørres antallet ønskede hendelser etter. Verdien ligger mellom 0..255. I tillegg returneres den nåværende tiden i UTC. Denne brukes foreløpig bare til feilanalyse. Verdien er imidlertid nødvendig.
Antcas Control <- Klient (før START):
ts:Datenpunkt:s;MAX_USINT;ACTUAL_TIME\n
Den første tiden definerer tidspunktet for å slå på, og den andre for å slå av. Det kan også oppstå overlappende perioder. For å ikke belaste minnet for mye, brukes en ringbuffer. Dette betyr at en verdi erstattes og ikke alle verdier flyttes nedover. Derfor må alle verdier tas i betraktning. Etter mottaket sendes en bekreftelse tilbake til serveren. Verdien kan også være identisk med den ovenfor for å gjøre programmet enklere.
Antcas Control -> Klient:
ts:Datenpunkt:USINT;DT#YYYY-MM-DD-HH:II:SS;DT#YYYY-MM-DD-HH:II:SS\n
For å sikre at ingen hendelse utløses ved en avbrutt kommunikasjon, deaktiveres alle ikke-aktive poster. Dette er tilfelle når inn- og utskiftingsstatusene er identiske. Den minimale skiftetiden ligger dermed på én sekund.
Antcas Control -> Klient:
ts:Datenpunkt:USINT;DT#1970-01-01-00:00:00;DT#1970-01-01-00:00:00\n