Kommunikation S7<--> PC über Ethernet mit Send/Receive

MW

Level-1
Beiträge
1.186
Reaktionspunkte
272
Zuviel Werbung?
-> Hier kostenlos registrieren
Es gibt zwar schon ziemlich viele beiträge zu diesem Themenbereich, nur leider beantwortet keiner meine fragen

Ich möchte eine Kommunikation zwischen einem "standart" PC und einer S7(mit ethernet-CP) aufbauen und dies ohne verwendung von Siemens Software. Dabei soll die S7 die daten über eine projektierte ISO on TCP Verbindung senden bzw. empfangen.
Auf der SPS Seite kein Prob., nur wie realisiere ich den PC Teil ??????

Soweit ich weis geht dies Mit den Windows Sockets.
Also connect aufrufen
(mit den Parametern Remote IP und Remote port (=102))
und dann warten bis die SPS was sendet.
Nur die Sps sagt das die verbindung nicht aufgebaut ist. ????????


Hat jemand eine idee was ich falsch mach bzw. wie es richtig gemacht wird ?????

Software: MS Visual Basic 2005


PS: mit Libnodave funktioniert es bestens, nur diesen Verkehr kann man ja von der SPS seite kaum(garnicht) beeinflussen. Deshalb wollte ich es auf diesem wege versuchen -- ich weiss, dass es funktioniert.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja das hatte ich auch schon mal gelesen, da gehts aber hauptsächlich um Fetch/Write und das leider nur auf der S7 Seite. mein Problem is aber hauptsächlich die PC seite.
Oder gibts da hilfreiche zusammenhänge zwischen Fetch/Write und Send/Receive ???
 
Soweit ich weis geht dies Mit den Windows Sockets.
Also connect aufrufen
(mit den Parametern Remote IP und Remote port (=102))
und dann warten bis die SPS was sendet.
Nur die Sps sagt das die verbindung nicht aufgebaut ist. ????????
Wenn Du den Port 102 verwendest, dann mußt Du AFAIK das S7-Protokoll verwenden (wie libnodave), hast dann aber auch nicht mehr Einfluß auf die Kommunikation als mit libnodave.

Wenn Du mit Send/Receive auf der SPS arbeiten möchtest, dann mußt Du in Deinem SPS-Projekt dafür ja einen anderen Port definieren, da der Port 102 ja schon vom BS der SPS verwendet wird. Vom PC aus mußt Du dann diesen Port statt Port 102 ansprechen, damit sollte das funktionieren.


Gruß Axel
 
Hallo!

Ich hänge mich hier mal ganz frech an....

Bin grad an dem gleichen Vorhaben... Ich bekomm aber keine Verbindung zur SPS (Socketfehler 10053 / 10061). Programmiersprach Delphi 7 Enterprise über TClientSocket...

Weiß jemand an was das liegt?


Gruß
Marc
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich bekomm aber keine Verbindung zur SPS (Socketfehler 10053 / 10061).
  • 10053 (WSAECONNABORTED) Eine bestehende Verbindung wurde softwaregesteuert durch den Hostcomputer abgebrochen
  • 10061 (WSAECONNREFUSED) Es konnte keine Verbindung hergestellt werden, da der Zielcomputer die Verbindung verweigerte

Scheint so, als ob die SPS mit Deinem PC ganz einfach nicht reden will ... :p


Gruß Axel
 
Wenn Du den Port 102 verwendest, dann mußt Du AFAIK das S7-Protokoll verwenden (wie libnodave), hast dann aber auch nicht mehr Einfluß auf die Kommunikation als mit libnodave.

Wenn Du mit Send/Receive auf der SPS arbeiten möchtest, dann mußt Du in Deinem SPS-Projekt dafür ja einen anderen Port definieren, da der Port 102 ja schon vom BS der SPS verwendet wird. Vom PC aus mußt Du dann diesen Port statt Port 102 ansprechen, damit sollte das funktionieren.


Gruß Axel

Bei den TCP Verbindungen kann man ja den Port definieren aber bei
ISO on TCP will er in der Verbindungsprojektierung keinen Port haben, da ist nur ein eingabefeld für TSAP. Hat der TSAP damit was zu tun?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Noch mal als Diskussionsbasis:

PS: mit Libnodave funktioniert es bestens, nur diesen Verkehr kann man ja von der SPS seite kaum(garnicht) beeinflussen. Deshalb wollte ich es auf diesem wege versuchen -- ich weiss, dass es funktioniert.
Libnodave kommuniziert unter Anderem per ISO-over-TCP mit der SPS. Dafür wird das S7-Protokoll verwendet, die Kommunikation läuft auf SPS-Seite über Port 102 und wird dort vom Betriebssystem der SPS abgehandelt, darum muß/kann im SPS-Programm nichts getan werden.

Bei den TCP Verbindungen kann man ja den Port definieren aber bei ISO on TCP will er in der Verbindungsprojektierung keinen Port haben, da ist nur ein eingabefeld für TSAP.
Wenn Du im SPS-Programm per Send/Receive Datenpakete senden und empfangen willst, dann mußt Du keine ISO-over-TCP, sondern eine TCP-Verbindung projektieren. AFAIK sind dann noch einige (teilweise zyklische) Aufrufe von (S)FBs bzw. (S)FCs notwendig, und dann sollte das funktionieren. Wie das im SPS-Programm genau aussehen muß, kann ich Dir aber nicht sagen, ist nicht mein Fachgebiet. Such ggf. einfach mal hier im Forum.


Gruß Axel
 
Bei den Anlagen bei denen ich diese Kommunikation gesehen hab wird diese Variante benutzt um mit Visualisierungs- PC´s zu kommunizieren.
die haben auf ihren PC´s nix von Siemens. in der S7 sind ISO on TCP Verbindungen zu "Andere Station" projektiert mit Partner-IP und
Partner-TSAP. Also muss es ja möglich sein.

Mein anderes Problem ist, dass meine Test SPS bei TCP-Verbindungen der
Meinung ist, dass der dienst im CP nicht gestartet ist bzw. nicht verfügbar ist, was aber bei nem 6GK7 443-1EX11-0XE0 funktionieren müsste. Dann muss ich wohl weiter probieren (Wahrscheinlich bin ich nur zu blöd :rolleyes: )
 
Mit einer S7-300 funktioniert die Verbindung mit einem Lantronix X-Port folgenermaßen:

- In NetPro eine unspezifizierte Verbindung anlegen, gewünschte Ports und IP-Adressen des Partners einstellen.

- Im Programm den AG_RECV zyklisch mit entsprechenden Parametern aufrufen.

- Am PC ein Socket mit den entsprechenden Verbindungsdaten (IP:port) öffnen und Daten reinschieben.

-> Sich über die Daten im Datenbaustein freuen

Da der TCP-Datenstrom keine Anfang- Endekennungen besitzt, müssen die Daten im DB noch entsprechend geparst werden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
> Also TCP-Verbindungen zumindest lassen sich mit ACControl nicht simulieren.
Falsch

> Zum PVBrowser-Spamming sag ich mal nix, das machst du ja auch in
> anderen Foren.
Danke für die Blumen.
Was soll das jetzt ???
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Gut, in diesem Fall hatte der Link zum pvbrowser wenigstens mal Bezug zum Thema.
In dem Beispiel wird zu ACControl ja eine ISO on TCP Verbindung aufgebaut, ich hatte mal eine reine TCP-Verbindung getestet die mit der Simulation nicht zu funktionieren scheint.
 
Bei den antworten muss ich ja drauf schließen, dass von euch auch keiner so recht weis wie die Send/Receive Kommunikation auf ISO on TCP Basis zwischen S7 und PC zurealisieren wäre.
Auf reinen TCP-Verbindungen funktionieren die Standart Bausteine (FC 5, FC 6, FC 50 und FC60) ja meines wissens nicht oder lieg ich damit falsch???
 
Mal wieder das Rad neu erfinden...

Hallo,

MW schrieb:
Soweit ich weis geht dies Mit den Windows Sockets.

Ja, das kann man mit WinSock machen. Ist aber wirklich der unterste Level. Du musst nur noch einen TCP/IP Protokoll-Stack daraufsetzen... :)
Und da Du mit ISO over TCP kommunizieren möchtest, pfriemelst Du dann das S7 - Kommunikationsprotokoll in das TCP-Protokoll, ganz einfach...

MW schrieb:
Nur die Sps sagt das die verbindung nicht aufgebaut ist.

Wundert mich nicht, da fehlt ein bißchen, um die S7 zur Kommunikation zu überreden, siehe oben.

Ach ja, das geht natürlich alles ohne die FB's oder FC's in der S7, solange die S7 nicht auf eigene Initiative mit Daten auf den PC losballern möchte (was übrigens auch keinen Sinn macht).

Ist Deine Frage damit hinreichend beantwortet ?

Gruß

Question_mark
 
Zuletzt bearbeitet:
Zurück
Oben