Protokolla

Antcas TCP -protokolla on täysin avoimesti dokumentoitu. Viestintä tapahtuu TCP:n kautta.

Viestintä

Viestintä tapahtuu TCP-yhteydellä, jossa Antcas Control pitää auki yhteyden. Palvelin voi yhdistää yhden asiakkaan kerrallaan per rajapinta. Portti voidaan valita vapaasti. Oletusportti on 5'252. Paketin enimmäiskoko on rajoitettu 3'000 tavuun. Useita paketteja voidaan lähettää peräkkäin. Rajapinnalla on aikakatkaisu. Jos vastausta ei anneta tietyn ajan kuluessa, prosessi alkaa uudelleen.

Huomautus: Merkit kuten umlautit ja erikoismerkit määritellään ISO-8859-1-muodossa.

Kaikki käytettävät muuttujat ovat Case Sensitive, mikä tarkoittaa, että isoista ja pienistä kirjaimista tehdään ero. Tässä on esimerkki siitä, miten yksinkertainen siirto voi olla rakennettu:

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

Kätteleminen

Sillä hetkellä, kun yhteys on muodostettu, Antcas Control lähettää kättelemisen asiakkaalle. Tämä voi sisältää valinnainen enimmäispuskurikoko tavuina, jotta Antcas Control rajoittaa jokaista viestiä lähetettäessä, kunnes vahvistus palautetaan. MAX_BUFFER_SIZE koko ei saa olla liian pieni, jotta rajapinnan nopeus pysyy korkeana.

Antcas Control -> Client:

ANTCAS_TCP\n

Antcas Control <- Client:

OK[:MAX_BUFFER_SIZE=3000]\n

Alustaminen

Alustaminen tapahtuu kättelemisen jälkeen. Kaikki datapisteiden arvot lähetetään asiakkaalta Antcas Controlille. Katso Arvo siirto. Kun siirto on valmis, laukaistaan aloituskomento. Sen jälkeen Antcas Control lähettää arvonsa. Nämä suodatetaan alustamisen jälkeen. Eli ei lähetetä yhtään datapistettä, joka ei ole olemassa.

Antcas Control <- Client:

START\n

Kääntäjätaulukko

Lisäksi kääntäjätaulukkoa voidaan siirtää. Tämä parantaa suorituskykyä monilla datapisteillä. Käännös on tehtävä suoraan kättelemisen jälkeen. Muuttujia voi myös määrittää kahdesti. Esimerkiksi lämpötila tyypiltään INT ja REAL. Datapisteitä käsitellään täysin erikseen.

Antcas Control <- Client:

TL:x:1:Licht/1. OG/EIN\n

Tässä Licht/1. OG/EIN käännetään x:1 viestintää varten. Palvelin lähettää sen sijaan nimeä vain x:1.

Watchdog / Keep Alive

Jotta yhteys pysyisi auki, käytetään syklistä watchdogia. Tämä valvoo sekä asiakasta että palvelinta. Aikakatkaisu tapahtuu noin 6 sekunnin kuluttua ilman vastausta. Asiakas voi katkaista yhteyden 10 sekunnin kuluttua ilman vastausta palvelimelta. Tämä käytetään vain, jos ei lähetetä tietoja.

Antcas Control -> Client:

KA\n

Antcas Control <- Client:

RE\n

Arvo siirto

Kaikki tiedot lähetetään merkkijonona. Tietotyypin määrittää arvon etuliite. Datapiste voi esiintyä vain kerran, vaikka sillä olisi useita tietotyyppejä. Datapisteessä voi olla myös polku. Esimerkiksi:

x:Licht/1. OG/EIN:TRUE\n

tai kääntäjätaulukolla:

x:1:TRUE\n

Kun merkkijono on lähetetty, on tehtävä vahvistus, vasta sen jälkeen seuraava arvo lähetetään:

OK\n

Bool

Antcas Control <-> Client:

x:Datenpunkt:FALSE/TRUE\n

Uint

Antcas Control <-> Client:

ui:Datenpunkt:[0..65536]\n

Huomautus: Muut arvot on lähetettävä merkkijonona.

Int

Antcas Control <-> Client:

i:Datenpunkt:[-32768..32767]\n

Real/Float

Antcas Control <-> Client:

r:Datenpunkt:[3.402823E-38..1.175 495E+38]\n

Date

Antcas Control <-> Client:

d:Datenpunkt:D#YYYY-MM-DD\n

Time

Antcas Control <-> Client:

t:Datenpunkt:T#5d4h3m2s1ms\n

Datetime

Antcas Control <-> Client:

dt:Datenpunkt:DT#YYYY-MM-DD[-HH:II:SS]\n

String

Antcas Control <-> Client:

s:Datenpunkt:String[max. 64 Zeichen]\n

Huomio: Rivinvaihdon lähettäminen (\n) ei ole sallittu.

Timeswitch

Tämä tietotyyppi kommunikoi aina ennen datan vaihtoa ja lähettää kaikki tulevat tapahtumat aikataulutettavalle laitteelle. Toteutus SPS-tasolla Antcas Controlissa ei ole mahdollista. Kuitenkin kalenteri voidaan manipuloida SPS:ssä.

Pyydä tapahtumien määrää

Aloituskomennon ennen pyydetään haluttujen tapahtumien määrä. Arvoalue on välillä 0..255. Lisäksi palautetaan nykyinen aika UTC-muodossa. Tämä käytetään tällä hetkellä vain virheenanalyysiin. Arvo on kuitenkin vaadittu.

Antcas Control <- Client (ennen START):

ts:Datenpunkt:s;MAX_USINT;ACTUAL_TIME\n

Kytkentätilojen siirto

Ensimmäinen aika määrittää kytkemisen päälle ajankohdan ja toinen kytkemisen pois päältä. Voidaan myös tapahtua ylivuotoja. Jotta muisti ei rasittaisi liikaa, käytetään rengasmuistia. Tämä tarkoittaa, että arvo korvataan eikä kaikkia arvoja siirretä eteenpäin. Siksi kaikki arvot on otettava huomioon. Vastaanoton jälkeen vahvistus lähetetään palvelimelle. Arvo voi myös olla sama kuin yllä olevassa, jotta ohjelma olisi yksinkertaisempi.

Antcas Control -> Client:

ts:Datenpunkt:USINT;DT#YYYY-MM-DD-HH:II:SS;DT#YYYY-MM-DD-HH:II:SS\n

Ei kytkentäaikaa

Jotta katkennut viestintä ei laukaise tapahtumaa, kaikki eivät aktiiviset merkinnät deaktivoidaan. Tämä on tapaus, jos päälle- ja pois-kytkentätilat ovat samat. Minimikytkentäaika on siten yksi sekunti.

Antcas Control -> Client:

ts:Datenpunkt:USINT;DT#1970-01-01-00:00:00;DT#1970-01-01-00:00:00\n