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

Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
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...

Ja ganz einfach:) :confused: das kann ja nich so einfach sein.

Wenn das so "einfach" is dann gib mir mal bitte nen Ansatz, denn momentan is bei mir Datenstau
 
Zuletzt bearbeitet:
Rad neu erfinden ...

Hallo,

MW schrieb:
momentan nur den Stink normalen (Unterste Level) Socket

Dann such Dir doch mal einen etwas höheren Level, z.B. ein OCX oder wie der Kram in VB heisst, mit TCP/IP Protokoll. Dann fehlt Dir immer noch das S7-Protokoll, das muss nämlich noch in dem TCP versteckt werden. Insgesamt hast Du dann einige hunderte Arbeitsstunden für eine etwas wackelige, laienhafte Kommunikationslösung vor Dir, die evtl. bei der kleinsten Störung/Fehler Deinen PC und die Kommunikation in das Nirwana schiesst.
Das S7-Protokoll ist nicht offengelegt, viel Spass bei der Forschung :)
Du kannst jetzt ein halbes Jahr an einer unvollkommenen Lösung basteln und Zeit verschwenden, aber das lohnt sich nicht wirklich. Ich kann Dir wirklich nur Simatic.Net oder AGLink 4.0 von DeltaLogic zur S7 - Kommunikation empfehlen. Alles andere ist der Versuch, das Rad neu zu erfinden...

Gruß

Question_mark

PS : Wenn Du natürlich einige Monate Zeit hast und das Erforschen des S7-Protokolls Dir besonders viel Spass macht, dann nur zu. Aber finanziell und vom Arbeitsaufwand gesehen lohnt sich das nicht wirklich...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Na gut,
Zwar haben das die Leute von M............ auch hin bekommen und den ihre kommunikation läuft auch auf dieser Basis und das wie ich bis jetzt weis auch nach Jahren SAU GUT, wenn nicht sogar besser wie das Siemens eigene Zeug.

Dann bleib ich eben weiterhin bei Libnodave, dass funktioniert jedenfalls und is auch recht einfach in der anwendung.
 
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???
Ich bin zwar kein SPS-Programmierer, aber ich würde mal vermuten, da liegst Du völlig falsch.

AFAIK mußt Du einfach entweder eine TCP-Verbindung projektieren, oder dynamisch eine TCP-Verbindung im SPS-Programm aufbauen (das geht zumindest bei PN-CPUs mit FB 65), und dann im SPS-Programm mit den entsprechenden Sende- und Empfangsbausteinen die Daten an den PC schicken bzw. vom PC empfangen. Wie das genau geht, mußt Du die SPS-Spezialisten hier fragen, oder Dir einfach mal von Siemens ein entsprechendes Beispielprojekt herunterladen. Du mußt nur aufpassen, daß Du das richtige Beispiel erwischt, bei PN-Systemen müssen z.B ganz andere Bausteine verwendet werden, als bei den Anderen.

Das macht aber IMHO nur dann Sinn, wenn Du im SPS-Programm bestimmen mußt, wann welche Daten an den PC gesendet werden. Sonst kannst Du einfach weiterhin libnodave nehmen, und gut is.


Gruß Axel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn ich mich nicht täusche, dann wird da in etwa das gleiche gemacht wie in libnodave (Daten von der CPU pollen, ohne Einfluß durch das SPS-Programm).

Aber siehe erstes Posting:

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.
MW arbeitet demnach schon mit libnodave, aber will die übertragenen Daten in seinem SPS-Programm bestimmen.


Gruß Axel
 
Schön, ich dachte fast schon, ich hätte es falsch verstanden, weil alle Anderen irgendwie über ein anderes Thema geschrieben haben ... :confused:

Dann probier doch einfach mal, wie ich hier schon erwähnt habe, mit einer TCP-Verbindung auf irgendeinem Port > 1024, ob's dann funktioniert.


Gruß Axel
 
und das ist in .NET doch echt das allerleichteste ;)
Jetzt bin ich schon wieder am Grübeln, ob wir hier über das gleiche Thema schreiben ...
c010.gif


Gruß Axel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wer lesen kann is klar im Vorteil !!!!!! ICH MUSS NOCH ÜBEN :cool:

Ich hab ja versucht, erstmal testweise 25 Bytes, per Send an einen normalen PC zu schicken. Das hab ich auf S7 seite mit dem FC 5 (AG_SEND) gemacht. Dieser hat aber bei der TCP-Verbindung total wirre Fehlermeldungen ausgespuckt.

Nun hab ich folgendes in der doku gelesen:

Hinweis:
Beachten Sie bitte folgende Besonderheit für TCP-Verbindungen:
Bei den S7-CPs für S7-400 müssen Sie auf TCP-Verbindungen den FC AG_LSEND verwenden!


Also am PC über einen Socket mit der SPS connecten und auf der S7-Seite nich den FC 5 sondern den FC 50 verwenden und siehe da die Byts wackeln los. :s18:
 
Zurück
Oben