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 将向客户端发送握手。该握手可以可选地包含最大缓冲区大小(以字节为单位),以便 Antcas Control 在发送时限制每个电报的大小,直到收到确认。MAX_BUFFER_SIZE 的大小不应太小,以保持接口速度高效。
Antcas Control -> 客户端:
ANTCAS_TCP\n
Antcas Control <- 客户端:
OK[:MAX_BUFFER_SIZE=3000]\n
握手后进行初始化。客户端将向 Antcas Control 发送所有数据点的值。请参阅传输值。传输完成后,将触发启动命令。然后,Antcas Control 会发送其值。这些值在初始化后被过滤。也就是说,不会传输不存在的任何数据点。
Antcas Control <- 客户端:
START\n
此外,可以传输一个翻译表。这在有许多数据点时提高了性能。翻译必须直接在握手后进行。变量也可以定义两次。例如,INT 和 REAL 类型的温度。数据点将被完全单独处理。
Antcas Control <- 客户端:
TL:x:1:Licht/1. OG/EIN\n
这里,Licht/1. OG/EIN 被翻译为 x:1 用于通信。服务器发送的不是名称而是 x:1。
为了保持连接开放,使用循环看门狗。它监视客户端和服务器。在没有响应的情况下,超时大约在 6s 后发生。如果服务器没有回应,客户端可以在 10 秒内断开连接。这仅在没有传输数据时使用。
Antcas Control -> 客户端:
KA\n
Antcas Control <- 客户端:
RE\n
所有数据均以字符串形式传输。数据类型作为值的前缀定义。一个数据点只能出现一次,即使它具有多个数据类型。数据点也可以包含路径。例如:
x:Licht/1. OG/EIN:TRUE\n
或者使用翻译表:
x:1:TRUE\n
传输字符串后,必须进行确认,然后才能传输下一个值:
OK\n
Antcas Control <-> 客户端:
x:数据点:FALSE/TRUE\n
Antcas Control <-> 客户端:
ui:数据点:[0..65536]\n
注意:其他值必须以字符串形式传输。
Antcas Control <-> 客户端:
i:数据点:[-32768..32767]\n
Antcas Control <-> 客户端:
r:数据点:[3.402823E-38..1.175 495E+38]\n
Antcas Control <-> 客户端:
d:数据点:D#YYYY-MM-DD\n
Antcas Control <-> 客户端:
t:数据点:T#5d4h3m2s1ms\n
Antcas Control <-> 客户端:
dt:数据点:DT#YYYY-MM-DD[-HH:II:SS]\n
Antcas Control <-> 客户端:
s:数据点:String[最多 64 个字符]\n
注意:发送换行符(\n)是不允许的。
此数据类型仅在数据交换之前通信,并发送所有即将到来的时间开关事件。在 Antcas Control 中无法实现 PLC 层面的实现。但是可以操作 PLC 中的日历。
在启动命令之前,会请求所需事件的数量。值范围在 0..255 之间。此外,还会返回当前 UTC 时间。此时间仅用于错误分析。但是该值是必需的。
Antcas Control <- 客户端(在 START 之前):
ts:数据点:s;MAX_USINT;ACTUAL_TIME\n
第一个时间定义了打开的时刻,第二个时间定义了关闭的时刻。也可以发生重叠。为了不过多占用存储器,使用环形缓冲区。这意味着一个值被替换,而不是所有值都向后移动。因此必须考虑所有值。接收后,将确认发送到服务器。该值也可以与上述相同,以简化程序设计。
Antcas Control -> 客户端:
ts:数据点:USINT;DT#YYYY-MM-DD-HH:II:SS;DT#YYYY-MM-DD-HH:II:SS\n
为了在中断通信时不触发任何事件,所有非活动条目都被禁用。这是当打开和关闭状态相同时发生的情况。因此最小开关时间为一秒钟。
Antcas Control -> 客户端:
ts:数据点:USINT;DT#1970-01-01-00:00:00;DT#1970-01-01-00:00:00\n