پروتکل Antcas TCP به طور کامل مستند و باز است. ارتباط از طریق TCP انجام می شود.
ارتباط از طریق TCP با یک اتصال باز از Antcas Control انجام می شود. سرور فقط می تواند در هر اینترفیس با یک کلاینت متصل شود. پورت می تواند آزادانه انتخاب شود. پورت پیش فرض ۵۲۵۲ است. اندازه بسته حداکثر به ۳۰۰۰ بایت محدود شده است. می توان چندین بسته را پشت سر هم منتقل کرد. اینترفیس دارای یک زمان انتظار است. اگر پس از مدت زمانی پاسخ داده نشود، فرایند دوباره شروع می شود.
توجه: کاراکترهای مانند املائات و کاراکترهای ویژه در فرمت ISO-8859-1 تعریف شده اند.
همه متغیرهای استفاده شده Case Sensitive هستند، این معنی دارد که بین حروف بزرگ و کوچک تمایز می شود. اینجا یک مثال از اینکه چگونه یک انتقال ساده ساخته شده است:
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
پس از ایجاد یک اتصال، Antcas Control یک Handshake به کلاینت می فرستد. این می تواند اختیاری اندازه بافر حداکثر را در بایتها شامل شود، تا Antcas Control هر تلگرام را محدود کند هنگام ارسال، تا یک تاییدیه برگشت داده شود. اندازه MAX_BUFFER_SIZE نباید بسیار کوچک انتخاب شود، تا سرعت اینترفیس بالا بماند.
Antcas Control -> Client:
ANTCAS_TCP\n
Antcas Control <- Client:
OK[:MAX_BUFFER_SIZE=3000]\n
Initialisierung پس از Handshake انجام می شود. همه مقادیر نقاط داده از کلاینت به Antcas Control ارسال می شوند. ببینید Wert übertragen. اگر انتقال کامل شد، یک دستور شروع فعال می شود. سپس Antcas Control مقادیر خود را ارسال می کند. اینها پس از Initialisierung فیلتر شده اند. بنابراین هیچ نقطه داده ای که وجود ندارد، منتقل نمیشود.
Antcas Control <- Client:
START\n
به علاوه یک جدول ترجمه می تواند منتقل شود. این کار عملکرد را در صورت وجود بسیاری از نقاط داده افزایش می دهد. ترجمه باید مستقیم پس از Handshake انجام شود. متغیرها نیز می توانند دوبار تعریف شوند. به عنوان مثال، دما از نوع INT و REAL. نقاط داده کاملاً جداگانه در نظر گرفته می شوند.
Antcas Control <- Client:
TL:x:1:Licht/1. OG/EIN\n
در اینجا Licht/1. OG/EIN به x:1 برای ارتباط ترجمه می شود. سرور در عوض از نام فقط x:1 ارسال می کند.
برای نگه داشتن اتصال باز، یک Watchdog چرخه ای استفاده می شود. این کلاینت و سرور را کنترل می کند. Timeout پس از حدود 6 ثانیه بدون پاسخ رخ می دهد. کلاینت پس از ۱۰ ثانیه بدون پاسخ از سرور می تواند اتصال را قطع کند. این فقط در صورت عدم انتقال داده استفاده می شود.
Antcas Control -> Client:
KA\n
Antcas Control <- Client:
RE\n
همه داده ها به عنوان رشته منتقل می شوند. نوع داده به عنوان پیشوند مقدار تعریف شده است. یک نقطه داده فقط یک بار باید وجود داشته باشد، حتی اگر این چندین نوع داده دارد. نقطه داده همچنین می تواند یک مسیر شامل شود. به عنوان مثال:
x:Licht/1. OG/EIN:TRUE\n
یا با جدول ترجمه:
x:1:TRUE\n
پس از انتقال رشته، یک تاییدیه باید انجام شود، سپس مقدار بعدی منتقل می شود:
OK\n
Antcas Control <-> Client:
x:Datenpunkt:FALSE/TRUE\n
Antcas Control <-> Client:
ui:Datenpunkt:[0..65536]\n
توجه: مقادیر دیگر باید به عنوان رشته منتقل شوند.
Antcas Control <-> Client:
i:Datenpunkt:[-32768..32767]\n
Antcas Control <-> Client:
r:Datenpunkt:[3.402823E-38..1.175 495E+38]\n
Antcas Control <-> Client:
d:Datenpunkt:D#YYYY-MM-DD\n
Antcas Control <-> Client:
t:Datenpunkt:T#5d4h3m2s1ms\n
Antcas Control <-> Client:
dt:Datenpunkt:DT#YYYY-MM-DD[-HH:II:SS]\n
Antcas Control <-> Client:
s:Datenpunkt:String[max. 64 Zeichen]\n
توجه: ارسال یک Linefeed (\n) مجاز نیست.
این نوع داده همیشه فقط قبل از تبادل داده ها ارتباط برقرار می کند و همه رویدادهای آینده یک ساعت زمانبندی را ارسال می کند. پیاده سازی در سطح SPS در Antcas Control امکان پذیر نیست. با این حال، یک تقویم در SPS قابل تغییر است.
قبل از دستور شروع تعداد رویدادهای مورد نظر درخواست می شود. محدوده مقدار بین ۰..۲۵۵ است. علاوه بر این، زمان فعلی در UTC برگشت داده می شود. این فقط برای تحلیل خطا استفاده می شود. با این حال، مقدار ضروری است.
Antcas Control <- Client (vor START):
ts:Datenpunkt:s;MAX_USINT;ACTUAL_TIME\n
زمان اول زمان روشن شدن را تعریف می کند و دومی برای خاموش کردن. ممکن است به تداخل بخرید. برای کاهش بار حافظه، یک حافظه حلقوی استفاده می شود. این معنی دارد که یک مقدار جایگزین شده است و همه مقادیر عقب نمی روند. بنابراین باید همه مقادیر در نظر گرفته شوند. پس از دریافت، یک تاییدیه به سرور برگشت داده می شود. مقدار نیز می تواند با بالا یکسان باشد تا برنامه را ساده تر کند.
Antcas Control -> Client:
ts:Datenpunkt:USINT;DT#YYYY-MM-DD-HH:II:SS;DT#YYYY-MM-DD-HH:II:SS\n
برای اینکه در صورت قطع ارتباط هیچ رویدادی فعال نشود، همه واردهای غیر فعال غیرفعال می شوند. این زمانی است که وضعیت روشن و خاموش یکسان هستند. زمان کمترین سوئیچینگ بنابراین یک ثانیه است.
Antcas Control -> Client:
ts:Datenpunkt:USINT;DT#1970-01-01-00:00:00;DT#1970-01-01-00:00:00\n