# Ethernet TCP/IP Kommunikation

{% columns %}
{% column %}

{% endcolumn %}

{% column %}
Der XENAX® Servocontroller verfügt über einen integrierten TCP/IP-Stack zur Kommunikation über das lokale Netzwerk. Die Ethernet-Schnittstelle erlaubt sowohl die Bedienung über die Weboberfläche WebMotion® (Port 80) als auch die direkte Steuerung über ASCII-Kommandos mittels einer TCP-Socketverbindung (Port 10001).

Beide Dienste können parallel genutzt werden. Die physische Ausführung der Ethernet-Buchse und die LED-Statusanzeigen sind im Kapitel [ETHERNET TCP/IP](/control_system/de/xenax/xenax-xvi-75v8s/elektrische-anschlusse.md#ethernet-tcp-ip) beschrieben.
{% endcolumn %}
{% endcolumns %}

***

{% columns %}
{% column %}

{% endcolumn %}

{% column %}

### Verbindung auf WebMotion®

{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}

<figure><img src="/files/lYvt4xHEci9r6DfTSxn2" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}
Zur Erstinbetriebnahme, Konfiguration, Diagnose und Bedienung stellt der XENAX® einen integrierten HTTP-Webserver bereit.\
Verwenden Sie Ihren Standardbrowser und stellen Sie sicher, dass sich Ihre Netzwerkkarte im selben Netzwerk befindet wie der XENAX®. Passen Sie bei Bedarf die IPv4-Einstellungen entsprechend an. Die IP-Einstellungen für den Zugriff können Sie später im WebMotion® unter [connectivity](/control_system/de/xenax/xenax-xvi-75v8s/webmotion/operation/connectivity.md) anpassen.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}

<figure><img src="/files/lSF09TZld6cuoxTnJEJN" alt="" width="346"><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

#### IP-Adresse

Die voreingestellte IP-Adresse ist auf der Rückseite des Kontrollers aufgedruckt.

Falls nicht zugänglich oder geändert, kann sie über das 7-Segment-Display ausgegeben werden:

{% stepper %}
{% step %}

#### Logikversorgung einschalten

{% endstep %}

{% step %}

#### Sobald der Punkt auf der Anzeige leuchtet, die Logikversorgung wieder ausschalten

{% endstep %}

{% step %}

#### Beim nächsten Einschalten erscheint die IP-Adresse im 7-Segment

{% endstep %}
{% endstepper %}
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}

{% endcolumn %}

{% column %}

#### **Standard IP-Konfiguration**

IP-Adresse: 192.168.2.100

Subnet-Mask: 255.255.240.0

Bei Lieferungen mit mehreren Servocontrollern werden die IP-Adressen fortlaufend vergeben (z. B. 192.168.2.100, 192.168.2.101, 192.168.2.102 …).
{% endcolumn %}
{% endcolumns %}

***

{% columns %}
{% column %}

{% endcolumn %}

{% column %}

### **ASCII-Kommandos über TCP-Socket**

{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column width="50%" %}

<p align="center"></p>
{% endcolumn %}

{% column width="50%" %}
Über die TCP-Socket-Verbindung kann der Servocontroller vollständig mittels der verfügbaren ASCII-Kommandos angesteuert werden. Dadurch lassen sich komplette Ablaufsequenzen beispielsweise in Python, LabVIEW oder anderen Programmiersprachen implementieren.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}

{% endcolumn %}

{% column %}

#### ASCII-Kommunikationsprotokoll

{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}

<p align="center"><strong>Beispiel schreiben</strong></p>

<figure><img src="/files/OjkeMlMjfJsM6WgLLySw" alt=""><figcaption></figcaption></figure>

<p align="center"></p>

<p align="center"><strong>Beispiel lesen</strong></p>

<figure><img src="/files/0QoRbSusdQlhZAYwIS43" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

#### ECHO

Das ASCII-Protokoll arbeitet nach dem Echo-Verfahren: Jedes vom Host gesendete Zeichen wird vom Kontroller unmittelbar zurückgesendet und kann dadurch verifiziert werden. Falls kein Echo erwünscht ist, kann dieses mit dem ASCII-Kommando `ECH0` deaktiviert werden.

Nach dem Befehl folgen – sofern vorhanden – der entsprechende Parameterwert sowie das abschließende Prompt-Zeichen `>`.

Befehle und Werte sind ohne Leerzeichen dazwischen zu übertragen.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}

<figure><img src="/files/uweDsTgr0AT4ydDPL6df" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

#### **Prompt-Zeichen `>`**

Das Prompt-Zeichen `>` des XENAX® markiert das Ende einer Antwort. Warten Sie dieses Zeichen ab, bevor Sie einen neuen Befehl senden.

Werden in einer zyklischen Schleife Anfragen an den XENAX® gesendet – wie im Beispiel die Befehle `TP` und `TMC` – ist zu beachten, dass bei TCP/IP zusammenhängende ASCII-Sequenzen in mehrere Telegrammpakete aufgeteilt werden können. Deshalb ist ein separater Empfangspuffer (Im Beispiel hier `TM`) vorzusehen. Die Antwort ist somit `TMC230`).<br>
{% endcolumn %}
{% endcolumns %}

***

{% columns %}
{% column %}

{% endcolumn %}

{% column %}

### Asynchrone Mitteilung (Events)

Zur Verkürzung von Reaktionszeiten können Statusänderungen oder Änderungen an den PLC-Eingängen automatisch vom Servocontroller gesendet werden. Diese asynchronen Mitteilungen `Events` erfolgen unabhängig von Abfragen des Hosts, sodass kein kontinuierliches Polling erforderlich ist.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}

<figure><img src="/files/YLinctTz30QG29Ngpjvp" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

#### **Status-Events `EVT1`**

Nach einem Neustart des Servocontrollers bzw. nach dem Applikations-Download ist die Event-Funktion deaktiviert `EVT0`.

Bei aktivierten Events `EVT1` sendet der Kontroller die folgenden Meldungen:

| Event vom XENAX® | Status                 |
| ---------------: | ---------------------- |
|            `@S0` | Power OFF              |
|            `@S1` | Power ON / In Position |
|            `@S2` | In Motion              |
|            `@S9` | Error                  |
|             `@H` | Reference Set          |
|  {% endcolumn %} |                        |
| {% endcolumns %} |                        |

{% columns %}
{% column width="50%" %}

{% endcolumn %}

{% column width="50%" %}

#### **PLC Input-Events `ETI`**

Zusätzlich zu den Status-Events können auch Änderungen an den Hardware-Eingängen des XENAX® Events auslösen. Voraussetzung dafür ist, dass die Event-Funktion aktiviert ist `EVT1` und die gewünschten Eingänge über `ETI` (`Enable Event Track Input`) freigegeben wurden.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column width="50%" %}

<p align="right"><strong>PLC Input-Events aktivieren</strong></p>

<p align="right"></p>
{% endcolumn %}

{% column width="16.666666666666664%" %}

ASCII

Bit-Aufbau

Default
{% endcolumn %}

{% column width="33.33333333333332%" %}

`ETI` (Enable Event Track Input)

Hex (`ETI4` = Input 4 / `ETIB` = Input 11)

Alle Eingänge deaktiviert
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}

<figure><img src="/files/9rMhoLEZPUrW7kZeV2jo" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

<table><thead><tr><th width="180" align="right">Aktivieren</th><th>Status</th></tr></thead><tbody><tr><td align="right"><code>ETI0</code></td><td>Aktivieren für alle Eingänge 1-12</td></tr><tr><td align="right"><code>ETI1</code>...<code>ETIC</code></td><td>Selektives aktivieren eines Inputs</td></tr></tbody></table>
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column width="50%" %}

<p align="right"><strong>PLC Input-Events deaktivieren</strong></p>

<p align="right"></p>
{% endcolumn %}

{% column width="16.666666666666664%" %}

ASCII

Bit-Aufbau

Default
{% endcolumn %}

{% column width="33.33333333333332%" %}

`DTI` (Disable Event Track Input)

Hex (DTI7 = Input 7 / ETIC = Input 12)

Alle Eingänge deaktiviert
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}

{% endcolumn %}

{% column %}

<table><thead><tr><th width="180" align="right">Deaktivieren</th><th>Status</th></tr></thead><tbody><tr><td align="right"><code>DTI0</code></td><td>Deaktivieren für alle Eingänge 1-12</td></tr><tr><td align="right"><code>DTI1</code>...<code>DTIC</code></td><td>Selektives deaktivieren eines Inputs</td></tr></tbody></table>
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}

{% endcolumn %}

{% column %}
Bei aktivierten PLC Input-Events sendet der XENAX® bei jeder Eingangsänderung eine Meldung im Format `@Ixyz`. Die Zeichen x, y und z entsprechen jeweils einem Halbbyte in hexadezimaler Schreibweise und geben den aktuellen physikalischen Zustand der Eingänge wieder.

|                  | x    | y   | z   |
| ---------------- | ---- | --- | --- |
| INPUT Nr.        | 12-9 | 8-5 | 4-1 |
| {% endcolumn %}  |      |     |     |
| {% endcolumns %} |      |     |     |

{% columns %}
{% column %}

{% endcolumn %}

{% column %}

#### Fehlercodes ASCII-Protokoll

Kommt als Echo ein Fragezeichen `?` oder ein `#xx` zurück, so ist der Befehl ungültig. Befehl nicht erkannt oder kann in der aktuellen Konfiguration nicht ausgeführt werden. Hier eine Liste der Fehlercodes und deren Bedeutung:
{% endcolumn %}
{% endcolumns %}

<table><thead><tr><th width="176.3333740234375" align="right">ECHO</th><th>Beschreibung</th></tr></thead><tbody><tr><td align="right">?</td><td>Ungültiger Befehl oder Leerzeichen</td></tr><tr><td align="right">#01</td><td>Error ist anstehend</td></tr><tr><td align="right">#03</td><td>Fahrt ist aktiv</td></tr><tr><td align="right">#05</td><td>Programm ist aktiv</td></tr><tr><td align="right">#13</td><td>Emergency Exit EE1 anstehend</td></tr><tr><td align="right">#14</td><td>Emergency Exit EE anstehend</td></tr><tr><td align="right">#15</td><td>I_Force Calibration aktiv</td></tr><tr><td align="right">#27</td><td>I_Force Drift Compensation aktiv</td></tr><tr><td align="right">#34</td><td>Rotative Referenz aktiv</td></tr><tr><td align="right">#36</td><td>Gantry Referenz aktiv</td></tr><tr><td align="right">#38</td><td>Referenz aktiv</td></tr><tr><td align="right">#40</td><td>Befehl an aktives Busmodul nicht erlaubt</td></tr><tr><td align="right">#47</td><td>Fehlerreaktion ist aktiv (z.B. Bremsrampe)</td></tr><tr><td align="right">#49</td><td>Kein JSC Motor angeschlossen</td></tr><tr><td align="right">#65</td><td>Wertebereich des Parameters nicht gültig</td></tr><tr><td align="right">#66</td><td>Kommando nicht korrekt abgeschlossen (>5s zwischen zwei ASCII-Zeichen)</td></tr></tbody></table>

***

{% columns %}
{% column %}

{% endcolumn %}

{% column %}

### Port der Socketverbindung schliessen

{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}

{% endcolumn %}

{% column %}
Wenn die TCP/IP-Verbindung auf Port 10001 nicht ordnungsgemäss geschlossen wird, kann der Port in einem offenen Zustand verbleiben. In diesem Fall ist es nicht mehr möglich, eine neue TCP/IP-Verbindung zu diesem Port aufzubauen.

Es stehen drei Möglichkeiten zur Verfügung, den Port nachträglich korrekt zu schließen.

* Ethernet Kabel direkt beim XENAX® Servocontroller aus- und einstecken, dann wird Port 10001 automatisch freigegeben.
* Eine zweite Socketverbindung auf dem Port 9999 öffnen und über diese Socketverbindung das Kommando `ENPR` senden. Dann wird Port 10001 wieder freigegeben. Der Port 9999 kann nur für den Befehl `ENPR` verwendet werden.
* Timeout setzen mit Kommando `WDxxxx`. Nach Setzen eines Timeouts über `WDxxxx` muss die Verbindung auf Port 10001 mindestens einmal innerhalb des konfigurierten Intervalls ein `CR` senden. Erfolgt innerhalb dieses Zeitfensters keine Übertragung, wird die Verbindung automatisch getrennt.
  {% endcolumn %}
  {% endcolumns %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://tech.jennyscience.com/control_system/de/xenax/xenax-xvi-75v8s/ethernet-tcp-ip.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
