Kommunikationsproblem mit T-Bausteinen

sixt

Level-1
Beiträge
16
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, ich hatte letztens schon einmal 1-2 Fragen zu dem Thema offene Kommunikation gestellt. Mittlerweile bin ich mit meiner Arbeit jedoch weitergekommen.

Noch einmal kurz zur Wiederholung:
Ich schreibe momentan an einem Funktionsbaustein, der die Anbindung eines Identifikationssystems an eine S7-400 mit integrierter Ethernetschnittstelle
ermöglichen soll. Dabei wird die SPS als aktiver Kommunikationsteilnehmer betrieben. Ich verwende eine CPU 414-3 PN/DP mit der neuen Firmware-Version 5.3. Bei der älteren 5.2er tauchte jedoch das gleiche Problem auf und Step7 V.5.4.Als Bausteine verwende ich FB65 "TCON", FB64 "TRCV", FB63 "TSEND und FB66 "TDISCON". Die Kommunikation soll dabei über TCP (native) nach RFC 793 ablaufen.

Nun habe ich jedoch das Problem, dass der Baustein den ich schreibe entweder über den Port 10000 des Identifikationssystems oder über den Port 10001 kommunizieren soll. Wenn ich das Ganze mit dem OC-Wizard parametriere und in einem DB ablege funktioniert die Kommunikation über den Port 10000 einwandfrei. Ich kann die Verbindung Aufbauen, Abbauen, Senden und Empfangen, wobei es egal ist, ob ich bei der SPS einen Port einstelle oder nicht.

Wenn ich jedoch versuche die Kommunikation über den Port 10001 des Identifikationssystems ablaufen zu lassen bekomme ich beim FB65 einen Error und die Statusmeldung W#16#0000 (Erläuterung aus dem Handbuch: Verbindung konnte aufgebaut werden).

Nun habe ich mir das Ganze mit Wireshark einmal angeschaut und festgestellt, dass die SPS normalerweise beim Verbindungsaufbau 4 Broadcast-ARP-Telegramme verschickt mit der Info von Wireshark:" Who has"IP des Ident-Systems"?,Tell "IP der SPS"!".

Wenn ich nun jedoch versuche über den Port 10001 zu kommunizieren bleiben diese Broadcast-Telegramme aus und werden nicht verschickt. D.h. die SPS scheint nicht einmal zu versuchen eine Verbindung aufzubauen.

In der Struktur der Verbindungsparameter ist dabei der einzige unterschied bei der Remote-TSAP-ID. Bei Port 10000 steht dort B#16#27, B#16#10 (Rest 0), beim Port 10001 steht dort B#16#27, B#16#11 (Rest 0). Im Handbuch steht, dass die ersten beiden Bytes den Zielport codieren. Wenn ich nun mit einem Taschenrechner umrechne ist dez. 10000 = hex 2710 und dez. 10001 = hex 2711. Insofern weiss ich nicht, wo der Fehler liegt.

Hat jemand von euch evtl. eine Idee zu dem Thema???

MFG und Dankeschön, Sixt
 
Zuletzt bearbeitet:
Zurück
Oben