Giao thức Antcas TCP được tài liệu hóa hoàn toàn mở. Giao tiếp diễn ra qua TCP.
Giao tiếp diễn ra qua TCP với một kết nối mở từ Antcas Control. Máy chủ chỉ có thể kết nối với một máy khách duy nhất trên mỗi giao diện. Cổng có thể được chọn tự do. Cổng mặc định là cổng 5'252. Kích thước gói tối đa bị giới hạn ở 3'000 byte. Có thể truyền nhiều gói liên tiếp. Giao diện có một thời gian chờ. Nếu không có phản hồi trong một khoảng thời gian nhất định, quá trình bắt đầu lại.
Lưu ý: Các ký tự như dấu umlaut và các ký tự đặc biệt được định nghĩa theo định dạng ISO-8859-1.
Tất cả các biến được sử dụng là Case Sensitive, điều này có nghĩa là phải phân biệt chữ hoa và chữ thường. Đây là một ví dụ về cách một truyền dẫn đơn giản có thể được xây dựng:
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
Khi một kết nối được thiết lập, Antcas Control gửi một handshake đến máy khách. Nó có thể chứa kích thước bộ đệm tối đa tùy chọn theo byte, để Antcas Control giới hạn mỗi tin nhắn khi gửi cho đến khi nhận được xác nhận. Kích thước của MAX_BUFFER_SIZE không nên nhỏ quá để duy trì tốc độ giao diện.
Antcas Control -> Client:
ANTCAS_TCP\n
Antcas Control <- Client:
OK[:MAX_BUFFER_SIZE=3000]\n
Khởi tạo diễn ra sau handshake. Tất cả các giá trị của các điểm dữ liệu được gửi từ máy khách đến Antcas Control. Xem Gửi Giá Trị. Khi quá trình truyền dẫn hoàn tất, một lệnh bắt đầu được kích hoạt. Sau đó, Antcas Control gửi các giá trị của nó. Chúng sẽ được lọc sau khi khởi tạo. Điều này có nghĩa là không có điểm dữ liệu nào được truyền nếu nó không tồn tại.
Antcas Control <- Client:
START\n
Thêm vào đó, một bảng chuyển đổi có thể được gửi. Điều này tăng hiệu suất khi có nhiều điểm dữ liệu. Chuyển đổi phải diễn ra ngay sau handshake. Các biến cũng có thể được định nghĩa hai lần. Ví dụ: nhiệt độ kiểu INT và REAL. Các điểm dữ liệu được xử lý hoàn toàn riêng biệt.
Antcas Control <- Client:
TL:x:1:Licht/1. OG/EIN\n
Ở đây, Licht/1. OG/EIN được chuyển đổi thành x:1 cho giao tiếp. Máy chủ chỉ gửi x:1 thay vì tên.
Để giữ kết nối mở, một watchdog chu kỳ được sử dụng. Nó giám sát máy khách cũng như máy chủ. Timeout xảy ra sau khoảng 6s không có phản hồi. Máy khách có thể ngắt kết nối sau 10 giây không có phản hồi từ máy chủ. Nó chỉ được sử dụng khi không có dữ liệu nào được truyền.
Antcas Control -> Client:
KA\n
Antcas Control <- Client:
RE\n
Tất cả dữ liệu được gửi dưới dạng chuỗi. Kiểu dữ liệu được định nghĩa là tiền tố của giá trị. Một điểm dữ liệu chỉ có thể xuất hiện một lần, ngay cả khi nó có nhiều kiểu dữ liệu. Điểm dữ liệu cũng có thể chứa một đường dẫn. Ví dụ:
x:Licht/1. OG/EIN:TRUE\n
hoặc với bảng chuyển đổi:
x:1:TRUE\n
Sau khi chuỗi được gửi, phải có xác nhận, chỉ sau đó giá trị tiếp theo sẽ được gửi:
OK\n
Antcas Control <-> Client:
x:Datenpunkt:FALSE/TRUE\n
Antcas Control <-> Client:
ui:Datenpunkt:[0..65536]\n
Lưu ý: Các giá trị khác phải được gửi dưới dạng chuỗi ký tự.
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
Cảnh báo: Gửi một dòng mới (\n) không được phép.
Loại dữ liệu này luôn chỉ giao tiếp trước khi trao đổi dữ liệu và gửi tất cả các sự kiện sắp tới của một đồng hồ điều khiển thời gian. Một triển khai ở cấp SPS trong Antcas Control không khả dụng. Tuy nhiên, một lịch có thể được thao tác trong SPS.
Trước lệnh bắt đầu, số lượng sự kiện mong muốn được yêu cầu. Phạm vi giá trị nằm giữa 0..255. Ngoài ra, thời gian hiện tại theo UTC cũng được trả về. Nó chỉ dùng để phân tích lỗi hiện tại. Tuy nhiên, giá trị này là bắt buộc.
Antcas Control <- Client (trước START):
ts:Datenpunkt:s;MAX_USINT;ACTUAL_TIME\n
Thời gian đầu tiên định nghĩa thời điểm để bật và thời gian thứ hai để tắt. Có thể có sự chồng chéo. Để không quá tải bộ nhớ, một bộ nhớ vòng được sử dụng. Điều này có nghĩa là một giá trị sẽ bị thay thế và tất cả các giá trị khác không di chuyển về phía trước. Do đó, tất cả các giá trị phải được xem xét. Sau khi nhận được, một xác nhận được gửi lại máy chủ. Giá trị cũng có thể giống với giá trị trên để đơn giản hóa chương trình.
Antcas Control -> Client:
ts:Datenpunkt:USINT;DT#YYYY-MM-DD-HH:II:SS;DT#YYYY-MM-DD-HH:II:SS\n
Để khi giao tiếp bị gián đoạn không kích hoạt sự kiện nào, tất cả các mục không hoạt động được vô hiệu hóa. Điều này xảy ra khi trạng thái bật và tắt giống nhau. Thời gian chuyển đổi tối thiểu do đó là một giây.
Antcas Control -> Client:
ts:Datenpunkt:USINT;DT#1970-01-01-00:00:00;DT#1970-01-01-00:00:00\n