TCP-Verbindung SPS <-> Leitrechner mit TIA; Problem mit AG_RECV

Nibble

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

ich habe folgendes Problem:
Ich möchte über eine TCP-Verbindung Daten von der SPS zu einem Leitrechner schicken und daraufhin eine Antwort vom Leitrechner bekommen. Ich nutze hierzu einen CP 343-1 Lean (6GK7 343-1CX10-0XE0 V2.4). Das Projekt habe ich im TIA-Portal V11 erstellt. Die Verbindung zum Leitrechner funktioniert schon. Dieser erhält auch schon über AG_SEND Daten von meiner SPS.

IP CP: 10.49.11.112 Subnetzmaske: 255.255.254.0 Port: 2000
IP Leitrechner: 10.49.10.6 Port: 80
Lokale ID der Verbindung: 1
Verbindungsaufbau: aktiv

Leider empfange ich aber über AG_RECV keine Antwort vom Leitrechner, obwohl der eine sendet. AG_RECV gibt bei Status nur den Code 8180 aus, was "Es liegen noch keine Daten vor (nicht bei AG_SRECV)" bedeutet. Ich habe jetzt schon 2 Tage lang alles Mögliche ausprobiert um das Empfangen hin zu bekommen.

Habt ihr noch eine Idee an was es liegen könnte?
 
Hallo,

hast Du mal versucht für die Recv-Kopplung (SPS-Seite) eine 2. Verbindung mit anderem Port einzurichten?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was hast du denn für Length angegeben?

Hintergrund:

Der RECV Baustein spuckt Daten erst dann aus, wenn auch die entsprechende Anzahl von Bytes empfangen wurde.
Wenn Length auf 100 steht und der Partner immer nur 10 Byte sendet, müssen 10 Send Aufrufe passieren, bevor du am Recv irgendwelche Daten bekommst.
 
Danke für die Antworten.

@ MRose: Das mit der 2. Verbindung habe ich noch nicht getestet. Werd ich morgen mal machen.

@ Pipboy: Das mit der Länge habe ich schon getestet. Hab hierzu mal nur 5 Byte angegeben. Diese müssten auf alle Fälle gesendet worden sein. Später solln es immer 2048 Byte werden die ich vom Leitrechner bekomme.

Ich verwende eine CPU314C-2PN/DP (6ES7314-6EH04-0AB0) die noch mit einer Ein-/Ausgabebaugruppe und nen CP 343-1 Lean erweitert wurde. Im Handbuch des CP 343-1 Lean wird leider die CPU die ich verwende nicht in der Tabelle der verwendbaren CPU`s aufgeführt. Aber ich denke nicht dass es daran liegt sonst würd ja glaub ich gar nix gehn. Ich habe auch keine Störungen.

Auf meinem CP ist momentan die Frimwareversion V2.4. Denk ihr, dass ein Frimwareupdate auf V3.0 das Problem lösen könnte?

Vielen Dank für eure Hilfe.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was?

Ich meinte keine 2 physikalische Verbindung. Probier mal in der Projektierung der S7 eine 2. Verbindung mit z.B. Port 2001 einzurichten und den AG_RECV da dran zu binden. Ich kenn jetzt allerdings TIA noch nicht, hoffentlich geht das noch so einfach. Der Leitrechner muss die Sende-Daten dann natürlich auch über den Port schicken.
 
Das war mir schon klar. Eine 2. Verbindung kann man schon recht einfach einrichten. Aber ich kann ja nicht in beiden Verbindungen die selben Ports angeben. Und unsere IT ist nicht bereit die Daten über einen anderen Port zu schicken. Muss alles über Port 2000 (SPS) und Port 80 (Leitrechner) laufen.
 
Noch was:

Wenn ich die TCP-Verbindung online beobachte, wird der Zähler für Empfangene Nachrichten erst hoch gezählt wenn die Verbindung vom Leitrechner abgebaut wurde. Ich weiß nicht ob das weiter hilft
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hast du mal mit dem Error Bit den Status des Recv Bausteins umkopiert?

-> Sind wir sicher, dass dort kein Fehler auftritt.

So wie sich das jetzt ließt, ist da noch ein Filter im Spiel, vielleicht frisst einfach die Firewall diese Pakete.

>Switch mit Mirrorport oder Hub vor den CP klemmen und mit Wireshark den Traffic mitschneiden.

Dann siehst du wenigstens, ob Daten kommen - wenn dem nicht so ist kannst du lange Fehler im CP suchen.

Grüße

PS: Von 65000 Ports, warum ausgerechnet 80?
 
morgen,

hast du mal ein gateway eingetragen? du willst ja von .11 auf .10 was ich schon seltsam finde weil deine sub 255.255.254.0 ist naja wenn eure it die netze .10 / .11 so verknüpft hat ...
 
Hallo erzteufel,

Im Bereich IP und Subnetzmaske kenn ich mich leider nicht so gut aus. Ich hab alles von unsrer IT vorgegeben bekommen. Wie gesagt das Senden von Daten von meiner SPS zum Leitrechner funktioniert ja. Ping geht auch in beide Richtungen.

Noch eine Frage: Angenommen ich würde vom Leitrechner 200 Byte bekommen, frag aber mit AG_RECV nur 50 Byte ab, würde das funktionieren oder erkennt er das Telegramm dann nicht?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
So das Problem scheint gelöst zu sein.

Der Leitrechner hat sofort nachdem er seine Daten gesendet hat (ca. 120 Byte) die Verbindung abgebaut. Deshalb war scheinbar der AG_RECV nicht schnell genug mit dem verarbeiten der Daten bevor die Verbingung als abgebaut erkannt wurde. Wir haben jetzt einfach noch 2000 Leerzeichen an die eingentlich wichtigen Daten dran gehängt. Somit wird die Verbindung etwas später vom Leitrechner abgebaut und AG_RECV hat genung Zeit die Daten zu verarbeiten.

Aber trotzdem vielen Dank für eure Unterstützung.
 
Zurück
Oben