Automatischer Abbau einer abgebrochenen zuvor vorhandenen Verbindung bei Ethernetkommunikation (behoben ab V5.0)

Behoben ab:
9400 HighLine SW V05.00.30.00

Verhalten der neuen Version:
Mit dem Ethernet Kommunikationsmodul ist es möglich, dass bis zu 3 Teilnehmer gleichzeitig mit dem Antriebsregler über die drei möglichen Serverkanäle kommunizieren. Dabei ist jederzeit möglich, dass ein oder mehrere Teilnehmer diese Verbindung abbrechen (z.B. die Leitungsverbindung wird unterbrochen). Dadurch werden diese Verbindungen innaktiv und könnten auch vom Antriebsregler getrennt werden um den entsprechenden Serverkanal anderen Teilnehmern wieder zur Verfügung zu stellen. Bislang ist dies nicht realisiert gewesen und eine so unterbrochene Verbindung blockiert den Serverkanal. In der Codestelle C01511/1...3 wird der Zustand der drei möglichen Serverkanäle angezeigt. Auch wenn eine Verbindung unterbrochen wurde, wurde in der Codestelle C01511/1...3  'Verbunden' angezeigt, weil der entsprechende Serverkanal nicht automatisch getrennt wird. Nun wird eine unterbrochene Verbindung automatisch getrennt. Dazu wurde ein Mechanismus implementiert, der nach folgendem Schema arbeitet: Wenn bei einer aufgebauten Verbindung für mehr als 1 Minute kein Telegramm vom Antrieb ausgesendet wird, schickt dieser ein so genanntes 'Keepalive-Paket'. Dabei handelt es sich um ein Ack-Telegramm mit Null Byte Dateninhalt, dessen Ack-Sequenznummer um eins kleiner als die aktuelle Ack-Sequenznummer ist. Die Gegenstelle reagiert darauf, indem es das Telegramm mit einem eigenen Ack bestätigt, aufgrund der alten Sequenznummer dieses aber selbst nicht verwertet. Für den Antrieb ist aber genau das produzierte Ack des Empfängers ein Zeichen für eine intakte Verbindung.
Kommt innerhalb einer Timeoutzeit von 1 Minuten kein Ack zurück, wird die Verbindung nach weiteren zwei Minuten getrennt, da angenommen wird, dass die Verbindung unterbrochen wurde. Der Socket bzw. Serverkanal ist also wieder für neue Verbindungsversuche frei und dies wird auch in der Codestelle C01511/1...3  und C01510/1...3 entsprechend angezeigt.
Wurde der Socket bzw. Serverkanal ordnungsgemäß durch die Gegenstelle beim Verbindungsabbau geschlossen, findet natürlich keine weitere Verbindungsüberprüfung mehr statt.
Damit ergibt sich rechnerisch eine Zeit von 4 Minuten nach dem eine Verbindung automatisch geschlossen wird wenn sie unterbrochen wurde. Die vier Minuten ergeben sich aus folgendem Zusammenhang:
Alle 60 Sekunden wird ein Keepalive-Paket gesendet. Als Timeout für das Warten auf eine Antwort auf ein Keepalive-Paket sind 60 Sekunden festgelegt worden. Nach einer weiteren Timeoutzeit von 120 Sekunden wird dann die Verbindung getrennt. Demnach wird ein geöffneter Socket bzw. Serverkanal bei gezogenem Stecker spätestens nach 60 + 60 + 120 = 240 Sekunden = 4 Minuten geschlossen.

URL zur Verlinkung dieses AKB-Artikels: https://www.lenze.com/de-de/go/akb/200904065/0/
Kontaktformular