Antcas TCP Protokolü tamamen açık belgelenmiştir. İletişim TCP üzerinden gerçekleşir.
İletişim, Antcas Control tarafından açık bir bağlantıyla TCP üzerinden gerçekleştirilir. Sunucu, her arayüz için yalnızca bir istemciyle bağlanabilir. Port serbestçe seçilebilir. Standart port 5'252'dir. Maksimum paket boyutu 3'000 bayt olarak sınırlandırılmıştır. Birden fazla paket arka arkaya iletilebilir. Arayüz, bir zaman aşımına sahiptir. Belirli bir süre içinde cevap verilmezse, işlem başa döner.
Not: Umlaut ve özel karakterler ISO-8859-1 formatında tanımlanır.
Tüm kullanılan değişkenler Case Sensitive'dir, yani büyük harf ve küçük harf arasında ayrım yapılır. İşte basit bir iletişimin nasıl yapılabileceği bir örnek:
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
Bir bağlantı kurulduktan sonra, Antcas Control istemciye bir handshake gönderir. Bu isteğe bağlı olarak maksimum buffer boyutunu bayt cinsinden içerebilir, böylece Antcas Control her telegramı onay alınana kadar sınırlayabilir. MAX_BUFFER_SIZE boyutu çok küçük seçilmemelidir, arayüz hızını yüksek tutmak için.
Antcas Control -> İstemci:
ANTCAS_TCP\n
Antcas Control <- İstemci:
OK[:MAX_BUFFER_SIZE=3000]\n
Handshake'den sonra başlatma işlemi gerçekleşir. İstemciden Antcas Control'a tüm veri noktalarının değerleri gönderilir. Değer Gönderme bölümüne bakınız. İletişim tamamlandığında, bir başlangıç komutu tetiklenir. Ardından Antcas Control değerlerini gönderir. Bu değerler başlatmadan sonra filtrelenir. Yani, mevcut olmayan bir veri noktası iletilmez.
Antcas Control <- İstemci:
START\n
Ayrıca bir çeviri tablosu da iletilebilir. Bu, birçok veri noktası durumunda performansı artırır. Çeviri, handshake'den hemen sonra gerçekleştirilmelidir. Değişkenler aynı anda iki kez de tanımlanabilir. Örneğin, INT ve REAL türünde sıcaklık. Veri noktaları tamamen ayrı olarak ele alınır.
Antcas Control <- İstemci:
TL:x:1:Licht/1. OG/EIN\n
Burada Licht/1. OG/EIN, iletişim için x:1 olarak çevrilmiştir. Sunucu artık sadece x:1'i adın yerine gönderir.
Bağlantının açık kalması için, bir döngüsel watchdog kullanılır. Bu, istemciyi ve sunucuyu izler. Zaman aşımı, yaklaşık 6 saniye cevap olmadan gerçekleşir. İstemci, sunucudan 10 saniye cevap almadan bağlantıyı kesme hakkına sahiptir. Bu yalnızca veri iletilmediği zaman kullanılır.
Antcas Control -> İstemci:
KA\n
Antcas Control <- İstemci:
RE\n
Tüm veriler string olarak iletilir. Veri türü, değere ön ek olarak tanımlanır. Bir veri noktası yalnızca bir kez meydana gelebilir, hatta bu birden fazla veri türüne sahip olsa bile. Veri noktasında bir yol da bulunabilir. Örneğin:
x:Licht/1. OG/EIN:TRUE\n
veya çeviri tablosu ile:
x:1:TRUE\n
String iletildikten sonra, bir onay yapılmalıdır, ancak böylece sonraki değer iletilir:
OK\n
Antcas Control <-> İstemci:
x:Datenpunkt:FALSE/TRUE\n
Antcas Control <-> İstemci:
ui:Datenpunkt:[0..65536]\n
Not: Diğer değerler string olarak iletilmelidir.
Antcas Control <-> İstemci:
i:Datenpunkt:[-32768..32767]\n
Antcas Control <-> İstemci:
r:Datenpunkt:[3.402823E-38..1.175 495E+38]\n
Antcas Control <-> İstemci:
d:Datenpunkt:D#YYYY-MM-DD\n
Antcas Control <-> İstemci:
t:Datenpunkt:T#5d4h3m2s1ms\n
Antcas Control <-> İstemci:
dt:Datenpunkt:DT#YYYY-MM-DD[-HH:II:SS]\n
Antcas Control <-> İstemci:
s:Datenpunkt:String[max. 64 Zeichen]\n
Dikkat: Satır sonu karakteri (\n) gönderilmesi izin verilmez.
Bu veri türü, yalnızca veriler değişmeden önce iletişim kurar ve zamanlayıcıdan gelen tüm gelecek olayları gönderir. Antcas Control'da PLC düzeyinde bir uygulama mümkün değildir. Ancak, PLC'de bir takvim manipüle edilebilir.
Başlangıç komutu öncesinde istenen olay sayısı sorgulanır. Değer aralığı 0..255'dir. Ayrıca, UTC'deki mevcut zaman da döndürülür. Bu şu anda yalnızca hata analizi için kullanılır. Ancak bu değer gereklidir.
Antcas Control <- İstemci (START öncesi):
ts:Datenpunkt:s;MAX_USINT;ACTUAL_TIME\n
İlk zaman, açma zamanı için ve ikinci zaman kapatma zamanı için tanımlanır. Çakışmalar da olabilir. Bellek yükünü azaltmak için, bir halkalı bellek kullanılır. Bu, bir değeri değiştirmek anlamına gelir ve tüm değerlerin kaydırılmaması. Bu nedenle, tüm değerler dikkate alınmalıdır. Alındıktan sonra, sunucuya bir onay iletilir. Değer aynı olabilir, programı daha basit yapmak için.
Antcas Control -> İstemci:
ts:Datenpunkt:USINT;DT#YYYY-MM-DD-HH:II:SS;DT#YYYY-MM-DD-HH:II:SS\n
Bir kesintili iletişimde bir olay tetiklenmemesi için, tüm etkin olmayan girişler devre dışı bırakılır. Bu durumda, açma ve kapatma durumu aynıdır. Böylece minimum değişim süresi bir saniyedir.
Antcas Control -> İstemci:
ts:Datenpunkt:USINT;DT#1970-01-01-00:00:00;DT#1970-01-01-00:00:00\n