TIA TCP-Message an Sender direkt beantworten

kami

Level-1
Beiträge
103
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

ich möchte gerne mit einem PC einen TCP-Message an meine S7-1214C senden und direkt an den Rechner einen String zurückschicken. Als Frage Antwort spielen.
Ich kann heute schon mit TRECV_C und TSEND_C an einen vordefinierten PC eine NAchricht senden. Aber ich will immer nun direkt dem Antworten, der mir etwas schickt.

Wie setze ich das um?

Danke.

Gruß kami
 
Hallo kami,

Du solltest nicht TRECV_C und TSEND_C gemeinsam für eine Verbindung nutzen.
C bedeutet Connection. Es sollte nur ein Baustein den Verbindungsaufbau übernehmen.
Folgende Kombinationen sind sinnvoll/zulässig:
TRCV_C & TSEND
TRCV & TSEND_C

VG

MFreiberger
 
Moin kami,

in einer Telegrammschnittstelle in Logistikanlagen ist der Datenstring idR mit einem HEADER versehen.
Darin stehen schon einmal Senderkennung, Empfängerkennung, Telegrammtyp und ggf. Sequenznummer.

Du musst ja für jede Verbindung eine ID vergeben. Die SPS muss für eine Verbindung ja die Verbindungsdaten zum Partner haben (bei TCP/IP halt auch die IP-Adresse). Für die Verbindung wird dann eine eindeutige ID vergeben. Ich denke Du müsstest mehrere Verbindungen aufbauen (für jeden Partner eine).

Ich wüsste nicht ob und wie man das so dynamisieren kann, dass unterschiedliche Partner in die gleiche Verbindung schreiben können?

VG

MFreiberger
 
Ich wüsste nicht ob und wie man das so dynamisieren kann, dass unterschiedliche Partner in die gleiche Verbindung schreiben können?

Nun eine TCP verbindung kannst du ja so einrichten das sie vom Partner aktiv aufgebaut werden muss. Dann muss du für den Partner ja auch keine aktive IP eintragen.
Natürlich kann dann immer nur einer gleichzeitig verbinden da sonst der Port belegt ist. Geantwortet wird dann über die aufgebaute Verbindung.
Die Partnerip muss nur der wissen, der die Verbindung aktiv aufbaut.

mfG René
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Okay aber das ich sowas wie eine direkte ACK Rückantwort gebe, geht nicht?
Wie sieht das sonst aus über eine REQUEST Anfrage bei der der PC eine Rückantwort bekommt mit Variablen drin?

Geht sowas?

Der Webserver ist mir bei Auslesen einfach zu langsam. Da dauert es bei mir 10 sec bis die Seite aufgebaut ist. Ich will aber im ms-Bereich eine Antwort haben.

Danke.

Gruß kami
 
Okay aber das ich sowas wie eine direkte ACK Rückantwort gebe, geht nicht?
Wie sieht das sonst aus über eine REQUEST Anfrage bei der der PC eine Rückantwort bekommt mit Variablen drin?

äh, du kannst in die Rückantwort reinschreiben was du willst. Wenn du einfach den Empfang quittieren willst, schreib halt ne ACK antwort. und schicke dann wenn du Resultate hast ein zusätzliches Telegram.
Wenn du noch schnellere Antworten willst, schalt die Mindestzykluszeit ab und teil ggf das Programm auf freilaufende und feste Zyklen auf.

Du kannst z.B. so aufbauen
anfrage <REQDAT01>
antwort1 : <REQDAT01ACK> // wenn du das intelligent anstellst, dann ist die Antwort im nächsten Zyklus gesendet
Antwort2 wenn die Antwort bereit steht: <DAT0120502655411254122554548785> // und die Antwort braucht ja vielleicht weitere Zyklen weil er noch durch den rest des Programms gehen muss um die Daten zu holen. Wenn du die nicht ständig sendebereit in einem DB gelagert hast (was ja durchaus auch sinn machen kann).
 
Zuletzt bearbeitet:
Hi,

das musst du mir erstmal erklären. Wo lege ich denn bei der S7 den ACK für eingehende TCP oder UDP-Messages fest. Ich schreibe nur in FUP geht das damit überhaupt?

Die Daten habe ich sendebereit in einem DB.

Gruß kami
 
Zurück
Oben