Step 7 AG_RECV : TCP Protokoll, Empfängslängenproblem

Sonnenschein

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

dies ist mein erster Beitrag, ich bitte mir also eventuelle nachzusehen.

Ich BIn gerade fleißig dabei meine Bachelorarbeit zu schreiben. Es geht um eine Kommunikation einer SPS zu einer Applikation auf dem PC mittels TCP Verbindung.

Verbindung zu meinem CP 343-1 steht und die Kommunikation, bzw Senden und Empfangen klappt auch super.
Nun zu meinem Problem. Die SPS sendet Anforderungen mehrerer VERSCHIEDENER LÄNGE zu lesen. Die Länge der Listen weiß ich auch vor dem AG_RECV Aufruf und gebe die auf den entsprechenden Eingang RECV als ANY pointer auf dem DB. Jedoch sehe ich im meinem Empfangspuffer nach dem zweiten Telegramm, nicht mehr das was ich möchte, also meine Telegramme verschieben sich und mein Programm findet denn natürlich nicht mehr das was es sucht an der richtigen Stelle. Ich vermute dort ein zeitlichen Problem, MIt dem AUfruf und der berechneten neuen länge für den nächsten Empfang. Alles so dynamisch wie möglich sein, dh. ich kann die listen nicht fix auf bestimmte Werte machen.


Villt kennt ja jemand das Problem oder kann mir einen nützlichen Tipp geben , dafür wäre ich sehr dankbar:)
 
Korrigierst du denn auch die LEN Angabe an deinem RECV?

Sendet deine Applikation Stringketten (ein String ist länger als die Anzahl seiner Zeichen).

Hast du schon mal alle Antworten der Applikation langsam nach und nach empfangen?


Gruß
SKg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Der Empfänger muß sich immer wieder auf den Anfang der TCP-Telegramme synchronisieren, was nicht einfach ist, und ohne spezielle Strukturierung der Telegramme (Header, Datenrahmen, Start-/Ende-Zeichen, Telegrammpausen, ...) ziemlich unmöglich wird.

Vielleicht hilft Dir dieses Programmbeispiel:
Übertragung von Daten (mit FC5 "AG_SEND" und FC6 "AG_RECV") mit variabler Telegrammlänge über das TCP Protokoll

Harald
 
Zurück
Oben