Datenvollständigkeit bei TCP Verbindung prüfen

Kutsubato

Level-1
Beiträge
26
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

wenn ich mit der ClientServerConnection auf der SPS CX9020 Byte-Daten empfangen will, z.B. immer Vektoren aus drei Zahlen (also 3D), wie
kann ich dann die Vollständigkeit der Daten überprüfen, sodass beim Zerlegen in einzelne Byte-Daten und dem anschließenden Übermitteln nichts verloren geht?
Funktioniert so etwas mit einer Checksumme oder Ähnlichem in TwinCat 3?

Ich müsste die Zahlen ggf. zerlegen, z.B. immer 3 Stellen vor und nach dem Komma, dann würde aus
3,2 -> 003,200,
was sich als Array übertragen lässt (als Beispiel),
aber wenn dann nur
000,200
ankommt, habe ich natürlich einen riesen Fehler usw.

Beste Grüße,
Kutsubato
 
Du kannst Dir eine Nachricht mit Start- und Endezeichen und Prüfsumme um die Nettodaten basteln,
z.B.: <STX> <byte1> <byte2> <byte3> <byte4> <byte5> <byte6> <crc> <ETX>
oder wie die Profibus-Telegramme.
Dann kannst Du aufgrund der Start- und Endezeichen Anfang/Ende/Vollständigkeit der Nachricht feststellen und mit der Prüfsumme die Integrität.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn es Dir um den Übertragungsweg geht brauchst Du keine Absicherung, dass macht das TCP Protokoll schon für Dich. Wenn da etwas unterwegs verloren geht oder verfälscht wurde wird dies durch das TCP-Protokoll erkannt, das Paket verworfen und vom Sender erneut gesendet. Irgendwann wird die Übertragung aber natürlich mit einem Fehler abgebrochen. Aus dem Grund hat z.B. das Modbus TCP Protokoll keine eigene Prüfsumme mehr. Du solltest jedoch ein Lebenszeichen-Bit und/oder Zähler mit übertragen um auf der Empfängerseite ausbleibende Pakete zu erkennen.
 
Zurück
Oben