- Beiträge
- 5.680
- Reaktionspunkte
- 1.600
-> Hier kostenlos registrieren
Ich hab hier ne S7-1500 dadrauf läuft eine TCP Kommunikation zu einem EthernetRS485 Wandler.
Das heisst Telegramme die ich über die TCP Verbindung schicke werden an den RS485 Port durchgereicht und viceversa.
Im programm läuft das so.
Ich habe einen TRCV_C der die Verbindung aufbaut und hält.
der TSEND sendet dann Telegramme auf die dann das Zielgerät antwortet und über TRCV_C kriege ich dann das Antworttelegramm.
Soweit sogut.
Ich schick die Telegramme üblicherweise so oft es geht. Also wenn grad keine Befehlstelegramme anstehen, überwache ich die Geräte per POLL Telegramme auf die das Gerät dann ein ACK Telegramm schickt.
Das funktioniert tip top. Jetzt kommt aber ne neue Anforderung dazu. Der EthernetRS485 Wandler soll ne SimKarte bekommen mit dem er sich in ein VPN einwählt in dem sich auch die SPS wiederfindet.
Die Simkarte soll aber auf 200MB Monatlich gedeckelt sein.
Ist ja kein Problem. Sende ich die Polls halt auch nur noch alle 5 Minuten um ein Update zu kriegen. Und wenn ein Befehl rausgeht polle ich alle paar Sekunden nochmal um die auf den Befehl folgende Statusupdates zu bekommen. An Gesendeten und empfangenen Daten komme ich dann auf 200 Byte die Stunde. über die TSEND TRECV längen addierten Daten.
Jetzt ist es ja aber so das über die TCP Transportstrecke ja noch ein TCP Header um das Serielle Telegramm gebaut wird, was das Ganze sicher grösser macht. Darum hab ich mal noch Wireshark drangehängt. Um rauszufinden wieviele mehr da generiert wird und sicherzustellen, dass die Karte dann nicht einfach trotzdem geleert wird.
hier mal ein kurzer Auszug
rot sind die Telegramme die ich effektiv schicke. das nächste Grün ist dann jeweils die Antwort.
Aber wie muss ich die anderen Daten Verstehen? Zählt das alles auch zu den Daten die von so einem Sim Datenpaket abgezogen wird? Das sind ja dann jeweils 200 bytes pro sekunde oder?
Wenn ja, wie könnte ich das verhindern?
Das heisst Telegramme die ich über die TCP Verbindung schicke werden an den RS485 Port durchgereicht und viceversa.
Im programm läuft das so.
Ich habe einen TRCV_C der die Verbindung aufbaut und hält.
der TSEND sendet dann Telegramme auf die dann das Zielgerät antwortet und über TRCV_C kriege ich dann das Antworttelegramm.
Soweit sogut.
Ich schick die Telegramme üblicherweise so oft es geht. Also wenn grad keine Befehlstelegramme anstehen, überwache ich die Geräte per POLL Telegramme auf die das Gerät dann ein ACK Telegramm schickt.
Das funktioniert tip top. Jetzt kommt aber ne neue Anforderung dazu. Der EthernetRS485 Wandler soll ne SimKarte bekommen mit dem er sich in ein VPN einwählt in dem sich auch die SPS wiederfindet.
Die Simkarte soll aber auf 200MB Monatlich gedeckelt sein.
Ist ja kein Problem. Sende ich die Polls halt auch nur noch alle 5 Minuten um ein Update zu kriegen. Und wenn ein Befehl rausgeht polle ich alle paar Sekunden nochmal um die auf den Befehl folgende Statusupdates zu bekommen. An Gesendeten und empfangenen Daten komme ich dann auf 200 Byte die Stunde. über die TSEND TRECV längen addierten Daten.
Jetzt ist es ja aber so das über die TCP Transportstrecke ja noch ein TCP Header um das Serielle Telegramm gebaut wird, was das Ganze sicher grösser macht. Darum hab ich mal noch Wireshark drangehängt. Um rauszufinden wieviele mehr da generiert wird und sicherzustellen, dass die Karte dann nicht einfach trotzdem geleert wird.
hier mal ein kurzer Auszug
rot sind die Telegramme die ich effektiv schicke. das nächste Grün ist dann jeweils die Antwort.
Code:
No. Time Source Destination Protocol Length Info251 07:10:42.880009 192.168.1.20 192.168.1.1 TCP 60 63354 → 48500 [RST, ACK] Seq=1 Ack=2 Win=0 Len=0
308 07:10:44.881707 192.168.1.20 192.168.1.1 TCP 60 55253 → 48500 [SYN] Seq=0 Win=8192 Len=0 MSS=1460
309 07:10:44.881788 192.168.1.1 192.168.1.20 TCP 60 48500 → 55253 [SYN, ACK] Seq=0 Ack=1 Win=29200 Len=0 MSS=1460
310 07:10:44.881931 192.168.1.20 192.168.1.1 TCP 60 55253 → 48500 [ACK] Seq=1 Ack=1 Win=8192 Len=0
477 07:10:49.882835 192.168.1.1 192.168.1.20 TCP 60 48500 → 55253 [FIN, ACK] Seq=1 Ack=1 Win=29200 Len=0
478 07:10:49.883014 192.168.1.20 192.168.1.1 TCP 60 55253 → 48500 [ACK] Seq=1 Ack=2 Win=8192 Len=0
479 07:10:49.884001 192.168.1.20 192.168.1.1 TCP 60 55253 → 48500 [RST, ACK] Seq=1 Ack=2 Win=0 Len=0
532 07:10:51.885157 192.168.1.20 192.168.1.1 TCP 60 56850 → 48500 [SYN] Seq=0 Win=8192 Len=0 MSS=1460
533 07:10:51.885573 192.168.1.1 192.168.1.20 TCP 60 48500 → 56850 [SYN, ACK] Seq=0 Ack=1 Win=29200 Len=0 MSS=1460
534 07:10:51.885775 192.168.1.20 192.168.1.1 TCP 60 56850 → 48500 [ACK] Seq=1 Ack=1 Win=8192 Len=0
[COLOR=#ff0000]713 07:10:56.023921 192.168.1.20 192.168.1.1 TCP 71 56850 → 48500 [PSH, ACK] Seq=1 Ack=1 Win=8192 Len=17[/COLOR]
714 07:10:56.024232 192.168.1.1 192.168.1.20 TCP 60 48500 → 56850 [ACK] Seq=1 Ack=18 Win=29200 Len=0
[COLOR=#00ff00]715 07:10:56.071276 192.168.1.1 192.168.1.20 TCP 63 48500 → 56850 [PSH, ACK] Seq=1 Ack=18 Win=29200 Len=9[/COLOR]
[COLOR=#ff0000]717 07:10:56.144048 192.168.1.20 192.168.1.1 TCP 71 56850 → 48500 [PSH, ACK] Seq=18 Ack=10 Win=8192 Len=17[/COLOR]
718 07:10:56.144151 192.168.1.1 192.168.1.20 TCP 60 48500 → 56850 [ACK] Seq=10 Ack=35 Win=29200 Len=0
[COLOR=#00ff00]719 07:10:56.191304 192.168.1.1 192.168.1.20 TCP 63 48500 → 56850 [PSH, ACK] Seq=10 Ack=35 Win=29200 Len=9[/COLOR]
720 07:10:56.333401 192.168.1.20 192.168.1.1 TCP 60 56850 → 48500 [ACK] Seq=35 Ack=19 Win=8192 Len=0
905 07:11:01.191692 192.168.1.1 192.168.1.20 TCP 60 48500 → 56850 [FIN, ACK] Seq=19 Ack=35 Win=29200 Len=0
906 07:11:01.191789 192.168.1.20 192.168.1.1 TCP 60 56850 → 48500 [ACK] Seq=35 Ack=20 Win=8192 Len=0
907 07:11:01.192518 192.168.1.20 192.168.1.1 TCP 60 56850 → 48500 [RST, ACK] Seq=35 Ack=20 Win=0 Len=0
972 07:11:03.193835 192.168.1.20 192.168.1.1 TCP 60 63887 → 48500 [SYN] Seq=0 Win=8192 Len=0 MSS=1460
973 07:11:03.194178 192.168.1.1 192.168.1.20 TCP 60 48500 → 63887 [SYN, ACK] Seq=0 Ack=1 Win=29200 Len=0 MSS=1460
974 07:11:03.194253 192.168.1.20 192.168.1.1 TCP 60 63887 → 48500 [ACK] Seq=1 Ack=1 Win=8192 Len=0
1012 07:11:04.331419 192.168.1.1 192.168.1.20 TCP 60 [TCP ACKed unseen segment] 48500 → 63887 [ACK] Seq=1 Ack=18 Win=29200 Len=0
[COLOR=#ff0000]1013 07:11:04.332133 192.168.1.20 192.168.1.1 TCP 71 [TCP Spurious Retransmission] 63887 → 48500 [PSH, ACK] Seq=1 Ack=1 Win=8192 Len=17[/COLOR]
[COLOR=#00ff00]1014 07:11:04.379225 192.168.1.1 192.168.1.20 TCP 63 48500 → 63887 [PSH, ACK] Seq=1 Ack=18 Win=29200 Len=9[/COLOR]
[COLOR=#ff0000]1016 07:11:04.453748 192.168.1.20 192.168.1.1 TCP 71 63887 → 48500 [PSH, ACK] Seq=18 Ack=10 Win=8192 Len=17[/COLOR]
Aber wie muss ich die anderen Daten Verstehen? Zählt das alles auch zu den Daten die von so einem Sim Datenpaket abgezogen wird? Das sind ja dann jeweils 200 bytes pro sekunde oder?
Wenn ja, wie könnte ich das verhindern?