bimota schrieb:
..., dann ist es wesentlich besser RFC1006 oder UDP als Transportprotokoll zu verwenden, da TCP streamorientiert* ist und die gesendeten Daten nicht als ein Paket liefert. RFC1006 oder UDP dagegen liefern jeden Datenblock der mit einem AG_SEND-Aufruf von der SPS gesendet wurde als einen Datenblock beim Lesen auf dem PC.
*TCP ist streamorientiert, d.h. ein Datenstrom ohne definierten Anfang und Ende; ein Leseaufruf auf dem PC liefert immer nur soviele Daten, wie gerade im Empfangspuffer sind (u.U. weniger oder mehr als ein Datenblock, der von der SPS gesendet wurde).
Ich bin kein SPS-Spezialist, komme aber aus dem Netzwerk-Bereich. Ein kleiner Einwurf sei mir erlaubt:
Bimota hat Recht, was das Framing (also den Erhalt der Telegrammgrenzen) angeht: UDP transportiert Telegramme, TCP einen Datenstrom.
Der wesentliche andere Unterschied zwischen UDP und TCP ist aber, dass UDP eine unsichere Verbindung darstellt. Telegramme können verlorengehen, und sie können in der falschen Reihenfolge beim Empfänger ankommen. Das könnte geschehen, wenn sie zwischendurch geroutet werden und sich etwa das Routing ändert. Wenn Sender und Empfänger im gleichen Netzwerksegment stehen, ist das eher unwahrscheinlich. Dennoch sollte man diese Risiken bedenken. Wenn man ihnen begegnen will, muss man wieder Sequenznummern o.ä. einführen, die TCP schon selber mitbringt.
Gruß
Stefan