Протокол Antcas TCP повністю відкрито документований. Спілкування відбувається через TCP.
Спілкування відбувається через TCP з відкритим з'єднанням від Antcas Control. Сервер може бути підключений до одного клієнта на інтерфейс. Порт можна вільно вибирати. Стандартний порт 5'252. Максимальний розмір пакету обмежений 3'000 байтами. Можна передавати кілька пакетів один за одним. Інтерфейс має тайм-аут. Якщо протягом певного часу не надходить відповідь, процес починається спочатку.
Примітка: Символи, такі як умлаути та спеціальні символи, визначаються у форматі ISO-8859-1.
Всі використані змінні чутливі до регістру, це означає, що розрізняється велика і мала літера. Ось приклад, як може бути побудована проста передача:
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
Ініціалізація відбувається після handshake. Всі значення точок даних надсилаються від клієнта до Antcas Control. Дивіться Передача значень. Якщо передача завершена, видається команда Start. Після цього Antcas Control надсилає свої значення. Вони фільтруються після ініціалізації. Тобто не передається жодна точка даних, яка не існує.
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. Він контролює клієнта та сервер. Тайм-аут відбувається приблизно через 6 секунд без відповіді. Клієнт може розірвати з'єднання після 10 секунд без відповіді від сервера. Він використовується лише тоді, коли не передаються дані.
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
Увага: Відправка розриву рядка (\n) не дозволено.
Цей тип даних завжди спілкується лише перед обміном даними та надсилає всі майбутні події таймера. Реалізація на рівні ПЛК в Antcas Control неможлива. Однак календар можна маніпулювати в ПЛК.
Перед командою Start запитується кількість бажаних подій. Діапазон значень становить від 0 до 255. Крім того, повертається поточний час у UTC. Цей параметр використовується зараз лише для аналізу помилок. Однак значення є обов'язковим.
Antcas Control <- Client (перед 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