Verbindung Windows-Rechner --> SPS

DaBorstel

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

Ich habe eine Frage. Im Rahmen eines Projektes soll ich eine Kopplung von einer SPS (S7-416-2 CP 443-1) an einen PC vornehmen.
Auf dem PC läuft bereits eine Software (VC++) die vorher mit einem anderem Rechner über TCP/IP kommuniziert. Da diese Art der Verbindung bestehen bleiben soll, sollten die Veränderungen (Anpassungen) möglichst auf der SPS-Seite stattfinden.
Wie kann ich es auf SPS-Seite realisieren, dass die gesendeten Daten Empfangen werden? Eigentlich geht das ja über den FC 6
AG_Recv, aber wie mir ein Kollege sagte, bekommt man bei TCP/IP die Längenangabe des Telegramms nicht mitgesendet.
Wie kann ich es sicherstellen, das mein Telegramm komplett (falls mehere Pakete) und in richtiger Reihenfolge empfangen wird?
Am besten ein Beispiel mit belegung der Funktionsein- /-ausgänge

Vielen Dank im vorraus
Stefan
 
Hallo,

Wie kann ich es sicherstellen, das mein Telegramm komplett (falls mehere Pakete) und in richtiger Reihenfolge empfangen wird?

TCP/IP selber überträgt das Telegramm paketweise (falls ein Paket nicht reicht), wobei jedes Paket eine Prüsumme erhält. Der Empfänger prüft Korrektheit und Vollständigkeit der Pakete und setzt das Telegramm in der richtigen Reihenfolge wieder zusammen - Du mußt Dich da um nix kümmern.
Achtung: das gilt nicht für UDP!

Zur CP443 sollte eine CD gehören, voll mit Handbüchern und Beispielen.


Peter
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe mich bis jetzt auf die Aussage eines Kollegen bezogen. Dieser hat seine Aussage nach dieses vor ca. 1/2 Jahr ausprobiert und es kamen die Daten nicht in der gewünschten Form (komplett) an.

Meines Wissens nach stimmt das, was du geschrieben hast, dass TCP/IP alles für einen erledigt.

Ich werde das ganze auf jeden Fall nochmals ausprobieren.
Mal sehen, obs klappt
 
Hallo,

Also ich habe keine Probleme. Bei S7-400 übrigens nicht FC6 sondern FC60 verwenden (LongReceive). Dies hier steht in PLC9 (416 mit CP 443-1)und kriegt Daten von PLC8 (315 mit CP 343-1) über TCP/IP:

Code:
 CALL  "AG_LRECV"
       ID    :=4
       LADDR :=W#16#3FFD
       RECV  :=P#DB150.DBX0.0 BYTE 500
       NDR   :=#PLC8_Fertig
       ERROR :=#PLC8_Fehler
       STATUS:=#PLC8_Status
       LEN   :=#PLC8_Laenge

Ich werte nur Fehler und Status aus bzw. starte die Datenübernahme nach Fertig-Meldung.
Genauso geht es auch zu/von PC-Station (iba-PDA mit Treiber TCP/IP lite)

Probleme gibts höchstens bei der Interpretation der unterschiedlichen Datenformate auf verschiedenen Plattformen (Gleitkomma auf PC, S5 und S7 ist immer was anderes!)

Peter
 
Bei Verwendung der SEND/RECEIVE-Schnittstelle ist es besser UDP oder eine ISO-On-TCP-Verbindung zu verwenden, da hier ein gesendeter Datenblock auch als ein Datenblock beim Empfänger ankommt (paketiert) und nicht gestückelt (da TCP streamorientiert), wie dies bei nur TCP-Verbindung vorkommen kann.
Vorgehensweise im SIMATIC NET Handbuch (Send/Receive-Schnittstelle) des jeweiligen Ethernet-CP. Bei Verwendung einer ISO-On-TCP-Verb. muss auf Empfängerseite allerdings das Protokoll RFC1006 oberhalb von TCP verwendet werden.
 
Zurück
Oben