TIA TCP/IP Verbindung S1511-1PN und PC

Nero1981

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

ich habe folgendes Problem:
Und zwar wird versucht mit einer S7 S1511-1PN eine TCP/IP-Verbindung zu einem PC aufzubauen um über dieser Daten (Strings) hin und her zu verschicken. Die Verbindung an sich steht schon. Beim TCON-Baustein kommt auch die Rückmeldung DONE=1, aber das Problem sind die TSEND und TRCV - Bausteine. Jemand eine Idee wie diese zu beschalten sind? Empfange auf dem PC über ein Terminal-Programm einfach keine Daten. Der Client (SPS) ist connected , aber sendet anscheinend nichts. Ist die erste TCP/IP-Anwendung mit SPS und finde immer nur Anleitungen und Diskussionen mit 300er und 400er CPUs, aber mit einer S1500er im TIA-Portal hab ich noch nichts entdeckt.
Ich hoffe Ihr könnt mir helfen.

Danke für jede hilfreiche Antwort und schönes Wochenende schonmal ;-)
 
Wie sieht dein Sende Puffer aus?

Wie sieht dein Empfangspuffer aus?

Gibst du den Befehl Daten zu schicken nachdem du die Verbindung aufgebaut hast? Der Baustein TSEND schickt Daten nur bei einer Positiven Flanke an REQ.
 
Kennst du F1?

Informiere dich über die Bausteine wie sie funktionieren.

Wenn du etwas senden willst, muss zuerst die Verbindung geöffnet werden, danach wird jedesmal bei eine positiven Flanke am REQ Eingang der gesamte Inhalt deine DB's, bei dir der String, geschickt.
 
Natürlich kenne ich F1, aber wenn die Hilfe mir schon geholfen hätte, würde ich hier nicht schreiben.

Ich hab es gestern jetzt soweit bekommen, dass das Ganze sendet und auch empfängt. Über Wireshark hab ich den Datenverkehr mitgelesen und bis jetzt ist auch alles richtig soweit. Mit Zählern am Ausgang vom TSEND und TRCV habe ich das nochmal überprüft. Ich habe bisher aber noch folgendes Problem:

Der TRCV schreibt nicht immer gleich in den Datenbaustein (in den angelegten String), sondern manchmal erst nach 4 und manchmal erst nach 10 empfangenen Daten, welche immer die gleichen sind. Als ich den Datentyp dann mal geändert auf CHAR habe schreibt er jetzt nur die letzte Stelle in den DB, dafür aber schon nach einmaligen senden. Die LEN am Eingang des TRCV ist 0, also optimiert laut Hilfe. Am EN_R ist dauerhaft ein High-Signal. Jemand eine Idee woran das liegen könnte?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Der TRCV schreibt nicht immer gleich in den Datenbaustein (in den angelegten String), sondern manchmal erst nach 4 und manchmal erst nach 10 empfangenen Daten, welche immer die gleichen sind. Als ich den Datentyp dann mal geändert auf CHAR habe schreibt er jetzt nur die letzte Stelle in den DB, dafür aber schon nach einmaligen senden. Die LEN am Eingang des TRCV ist 0, also optimiert laut Hilfe. Am EN_R ist dauerhaft ein High-Signal. Jemand eine Idee woran das liegen könnte?

Dann ist die Länge der Daten die du Sendest nicht gleich lang wie dein Empfangspuffer. Die sollten gleich lang sein.

Falls du die länge änderst schadet ein neustarten der SPS oder leeren des Empfangbausteins nicht. Nur dann siehst du ob die Daten richtig in den Puffer geschrieben werden.
 
Wie stelle ich die Länge des Empfangspuffers denn ein? Meine Empfangsdaten variieren zwischen 5 und 14 Zeichen. Der AdHoc ist auf 1 und die LEN auf 0. Die RCV_LEN ist nicht parametrierbar. Oder was muss noch eingestellt werden? EN und EN_R haben High Signal. Eine TCP/IP-Verbindung besteht.

Es scheitert zurzeit wirklich nur daran, dass die Daten gar nicht oder dann in Unmengen viel zu spät in den String geschrieben werden. Der Status des TRCV ist auf 7002 und immer wenn ich etwas sende zählt der Zähler mit, aber es wird nichts in den DB geschrieben. Es soll aber gleich das Gesendete/Empfangene als String in den DB geschrieben werden.
 
Wenn du einen String als Empfangspuffer hast schreibt er nach 255 Zeichen. Ich selbst arbeite immer mit der selben länge Zeichenlänge um genau solche Sachen zu vermeiden.

Wie du es aber Variabel machen kannst, kann ich dir nicht sagen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn du einen String als Empfangspuffer hast schreibt er nach 255 Zeichen. Ich selbst arbeite immer mit der selben länge Zeichenlänge um genau solche Sachen zu vermeiden.

Wie du es aber Variabel machen kannst, kann ich dir nicht sagen.

Wo müsste man dies dann einstellen mit der festen Zeichenlänge? Würde dies gern erst mal probieren.
 
Verbindung steht soweit. Senden und empfangen ist möglich. Einziges Problem ist nur noch das der Pufferspeicher schnell voll ist.
Wie leere ich diesen nach jedem Empfang von Meldungen.

Danke
 
Zurück
Oben