Antcas TCP プロトコルは完全に公開されています。通信はTCPを介して行われます。
通信は、Antcas Control からのオープン接続によるTCPで行われます。サーバーは1つのインターフェースごとに常に1つのクライアントのみに接続できます。ポートは自由に選択できます。デフォルトはポート 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 のみを送信します。
接続がオープン状態を維持するために、サイクリックなウォッチドッグが使用されます。これはクライアントとサーバーの両方を監視します。タイムアウトは約6秒間応答がない場合に発生します。クライアントはサーバーから 10 秒間応答がない場合、接続を切断できます。これはデータが転送されない場合のみ使用されます。
Antcas Control -> クライアント:
KA\n
Antcas Control <- クライアント:
RE\n
すべてのデータは文字列として転送されます。データ型は値のプレフィックスとして定義されます。データポイントは複数のデータ型を持つ場合でも1回のみ現れる必要があります。データポイントにはパスを含めることもできます。例えば:
x:Licht/1. OG/EIN:TRUE\n
または翻訳テーブルを使用する場合:
x:1:TRUE\n
文字列が転送された後、確認応答を行う必要があります。その後、次の値が転送されます:
OK\n
Antcas Control <-> クライアント:
x:Datenpunkt:FALSE/TRUE\n
Antcas Control <-> クライアント:
ui:Datenpunkt:[0..65536]\n
注意:他の値は文字列として転送する必要があります。
Antcas Control <-> クライアント:
i:Datenpunkt:[-32768..32767]\n
Antcas Control <-> クライアント:
r:Datenpunkt:[3.402823E-38..1.175 495E+38]\n
Antcas Control <-> クライアント:
d:Datenpunkt:D#YYYY-MM-DD\n
Antcas Control <-> クライアント:
t:Datenpunkt:T#5d4h3m2s1ms\n
Antcas Control <-> クライアント:
dt:Datenpunkt:DT#YYYY-MM-DD[-HH:II:SS]\n
Antcas Control <-> クライアント:
s:Datenpunkt:String[最大64文字]\n
注意: 改行文字(\n)の送信は許可されていません。
このデータ型は常にデータ交換前に通信し、タイムスイッチのすべての今後のイベントを送信します。Antcas Control 内でのPLCレベルでの実装は不可能です。ただし、カレンダーをPLCで操作できます。
開始コマンド前に希望するイベント数が要求されます。値の範囲は 0..255 です。さらに、現在の時刻(UTC)が返されます。これは現在エラー分析にのみ使用されます。ただし、この値は必須です。
Antcas Control <- クライアント(START 前):
ts:Datenpunkt:s;MAX_USINT;ACTUAL_TIME\n
最初の時刻はオンにする時間を定義し、2番目の時刻はオフにする時間を定義します。重複も発生する可能性があります。メモリを過度に負荷から守るために、リングバッファが使用されます。これは値が置き換えられ、すべての値が後ろに移動しないことを意味します。したがって、すべての値を考慮する必要があります。受信後にサーバーに確認応答が送信されます。この値は上記と同じでも構いません。プログラムを簡素化するためです。
Antcas Control -> クライアント:
ts:Datenpunkt:USINT;DT#YYYY-MM-DD-HH:II:SS;DT#YYYY-MM-DD-HH:II:SS\n
通信が中断された場合にイベントが発生しないように、すべての非アクティブなエントリが無効になります。これはオンとオフの状態が同じ場合です。最小スイッチング時間は1秒になります。
Antcas Control -> クライアント:
ts:Datenpunkt:USINT;DT#1970-01-01-00:00:00;DT#1970-01-01-00:00:00\n