-> Hier kostenlos registrieren
Hallo liebe Forengemeinde,
ich habe mich als blutiger SPS-Neuling herangewagt mittels TCP/offener Kommunikation (TCON, TSEND, TRECV) eine Verbindung von einer S7-CPU315-2 PN/DP zu einem selbst geschriebenen Windows-Programm aufzubauen. Dabei ist der PC die passive Gegenstelle (TCP-Listener). Die Verbindung wird auf Port 6001 erfolgreich aufgebaut und ich kann Daten auf beiden Seiten empfangen und auch senden.
Was ich bisher mir erhöhten Anstrengungen nicht herausfinden konnte ist, an was die SPS erkennen kann, ob eine TCP-Verbindung zum PC auch wirklich besteht. Egal ob ich den Listener am PC gestartet habe und die Steuerung sich dahin verbunden hat oder ob der Listener ausgeschalten ist, am TCON Baustein ändert sich kein Status oder anderes Bit was mir sagen könnte, ob der PC erreichbar ist. Hat hier jemand eine gute Idee?
Bisher habe ich mir erst einmal so beholfen, dass in dem Moment, in dem sich die Steuerung zum PC verbindet, vom PC ein Datenpaket an die Steuerung gesendet wird, welches die Steuerung veranlasst einen "PCistVerbunden"-Merker zu setzen. Wird der Listener am PC beendet, schickt der wiederum ein anderes Paket an die Steuerung woraufhin die Steuerung den gleichen Merker resettet. Dieses System funktioniert ab nur so lange, wie die Verbindung "im Guten" abgebaut wird. Wird das Ethernet Kabel gezogen oder der Listenerprozess stürzt ab, merkt die Steuerung scheinbar nichts davon. Eine weitere Alternative, die mir einfällt, wäre noch in regelmäßigen Abständen mit einem Timer von der Steuerung eine Art Watchdog Paket an den PC zu senden und auf eine Antwort innerhalb bestimmter Zeit zu warten, aber da scheue ich schon etwas den Aufwand. Das muss auch einfacher gehen, schließlich merkt mein Listener-Prozess am PC auch sofort, wenn die Steuerung nicht da ist.
Ich hoffe mal es gibt hier noch eine Hand voll Leute, die die offene Kommunikation nicht scheuen
VG, Stefan
ich habe mich als blutiger SPS-Neuling herangewagt mittels TCP/offener Kommunikation (TCON, TSEND, TRECV) eine Verbindung von einer S7-CPU315-2 PN/DP zu einem selbst geschriebenen Windows-Programm aufzubauen. Dabei ist der PC die passive Gegenstelle (TCP-Listener). Die Verbindung wird auf Port 6001 erfolgreich aufgebaut und ich kann Daten auf beiden Seiten empfangen und auch senden.
Was ich bisher mir erhöhten Anstrengungen nicht herausfinden konnte ist, an was die SPS erkennen kann, ob eine TCP-Verbindung zum PC auch wirklich besteht. Egal ob ich den Listener am PC gestartet habe und die Steuerung sich dahin verbunden hat oder ob der Listener ausgeschalten ist, am TCON Baustein ändert sich kein Status oder anderes Bit was mir sagen könnte, ob der PC erreichbar ist. Hat hier jemand eine gute Idee?
Bisher habe ich mir erst einmal so beholfen, dass in dem Moment, in dem sich die Steuerung zum PC verbindet, vom PC ein Datenpaket an die Steuerung gesendet wird, welches die Steuerung veranlasst einen "PCistVerbunden"-Merker zu setzen. Wird der Listener am PC beendet, schickt der wiederum ein anderes Paket an die Steuerung woraufhin die Steuerung den gleichen Merker resettet. Dieses System funktioniert ab nur so lange, wie die Verbindung "im Guten" abgebaut wird. Wird das Ethernet Kabel gezogen oder der Listenerprozess stürzt ab, merkt die Steuerung scheinbar nichts davon. Eine weitere Alternative, die mir einfällt, wäre noch in regelmäßigen Abständen mit einem Timer von der Steuerung eine Art Watchdog Paket an den PC zu senden und auf eine Antwort innerhalb bestimmter Zeit zu warten, aber da scheue ich schon etwas den Aufwand. Das muss auch einfacher gehen, schließlich merkt mein Listener-Prozess am PC auch sofort, wenn die Steuerung nicht da ist.
Ich hoffe mal es gibt hier noch eine Hand voll Leute, die die offene Kommunikation nicht scheuen
VG, Stefan