# OPC, VB.NET - Welches Object bzw. Dll?? BSEND, von SPS empfa



## Anonymous (28 Januar 2005)

Hallöle Ihr Leutz!

Ich programmiere VB6/.NET und Kommuniziere mit einem CP343-1 über RFC1006 - TCP. ICh habe die Software SIMATIC Softnet S7 Lean gekauft, und möchte nun die mit BSEND gesendeten Daten empfangen. Andersherum will ich auch Daten an die SPS schicken, die dann mir BRECEIVE empfangen werden. Ich weis das ich einen OPC Server und das SIMATIC S7 Protokoll installieren muss. Den OPC Client will ich ja programmieren, und habe leider keine Ahnung wie ich anfangen soll. 

Welches Object, in welcher Dll, übernimmt die FUnktion? Gibt es irgendwo Beispielprojekte?? (am besten in VB.NET)

Gibt es ein schönes Tool, das einen CP343-1 auf dem PC simuliert, so das ich Testläufe machen kann? z.B. Daten an eine Simulierten CP senden, und von ihm empfangen...

Brauch ich für das was ich will eigentlich Softnet?? Ich habe das gefühl, das ich mit Softnet alles machen kann, nur nicht das 'einfach' was ich will.... das sind Beispielprojekte dabei die irgendwelche Variablen von der SPS auslesen, aber nicht ein simples übertragen von Daten...

Naja, danke shconmal für eure Tipps, Linx, Erklärungen usw...


----------



## Gerhard Bäurle (12 Februar 2005)

Mahlzeit,

zum Datenaustausch mit BSEND braucht man auf dem PC 
wahrscheinlich den OPC-Server von Siemens oder Softnet.

Allerdings tut man sich mit BSEND keinen Gefallen,
da man die empfangenen Daten auch richtig 
interpretieren muss.

Ein einfachere Lösung ist das Pollen der CPU. Es gibt 
mehrer Anbieter von Protokoll-DLLs, mit den Sie das 
einfach und schnell realisieren können:

Prodave von Siemens, 
S7-IP-Link von Process Informatik
und ACCON-AGLink von uns.

Beispielprojekte, auch inVB.NET finden Sie auf unserer
Download-Seite.

Viele Grüße

Gerhard Bäurle


----------



## bs (13 Februar 2005)

Hallo,

für eine einfache Kommunikation mit dem CP343-1 über TCP/IP brauchst du keine weitere SW auf dem PC.
Mit dem Winsock Control (bei Windows PC) und einer TCP/IP Verbindung  ist eine einfache Kommunikation mit Send/Receive (FC5/FC6) möglich.
Die TCP/IP Verbindung kannn der CP343-1 erst seit ca. 3 Jahren, also mit einer alten HW geht es nicht.


----------



## Anonymous (27 September 2005)

Sorry wenn ich diesen alten Beitrag hochhole, aber ich habe genau dieses Problem. Ich habe eine Verbindung über die Sockets um dem CP zustande gebracht. Aber wie funktioniert dann eine Kommunikation über send und receive? Ich meine, wenn ich z.B. den Wert eines Merkers MB1 abfragen will, was muss ich dem CP senden? Gibts dazu ne Dokumentation oder sowas?


----------



## bimota (4 November 2005)

Thorsten25 schrieb:
			
		

> Sorry wenn ich diesen alten Beitrag hochhole, aber ich habe genau dieses Problem. Ich habe eine Verbindung über die Sockets um dem CP zustande gebracht. Aber wie funktioniert dann eine Kommunikation über send und receive? Ich meine, wenn ich z.B. den Wert eines Merkers MB1 abfragen will, was muss ich dem CP senden? Gibts dazu ne Dokumentation oder sowas?


Hallo,
wenn Du aktiv vom PC Daten abfragen willst, dann hilft dir SEND/RECEIVE gar nix! Bei der SEND/RECEIVE-Schnittstelle senden beide Teilnehmer aktiv Daten. Die SPS z.B. mit dem AG_SEND-Aufruf. Übrigens am besten mit UDP statt mit TCP, da UDP jeden Schreibaufruf als ein einziges Paket sendet, TCP dagegen einen kontinuierlichen Datenstrom.

Wenn Du aktiv Daten vom PC aus lesen willst, dann musst Du ein Anwendungsprotokoll verwenden, welches von Siemens auf deinem Ethernet-CP unterstützt wird (z.B. Fetch/Write).
Dieses Protokoll ist z.B. in der Siemens-Doku zu deinem CP Dokumentiert 
(NCM S7 Industrial Ethernet/NCM S7 Manuals) und ziemlich einfach zu implementieren.

Beispiel FETCH–Anforderungstelegramm 
Byte  Wert
-------------
0     Systemkennung =”S”
1     =”5” 
2     Länge.Header =16d. 
3     Kenn. OP–Code =01 
4     Länge OP–Code =03 
5     OP–Code =05 
6     ORG–Block =03 
7     Länge ORG–Block =08 
8     ORG–Kennung = Für Merker hier 02 eintragen
9     DBNR 9 Leerblock =FFh
A     Anfangsadresse High Byte 
B     Low Byte
C     Länge High Byte 
D     Low Byte
E      Leerblock =FFh. 
F      Länge Leerblock =0


----------

