# Mit TwinCat Daten auslesen von S7-300



## Commander83 (29 August 2008)

Wie kann man mit TwinCat Daten von einer S7-300 Steuerung über Ethernet auslesen?
Gibt es da eine Möglichkeit da Siemens leider kein ADS unterstützt?


----------



## repök (29 August 2008)

*Modbus?*

Ich habe mal mit einem Wago Koppler 841 eine Verbindung über Modbus aufgebaut. Wie weit TwinCat jetzt Modbus kann weiss ich nicht. Aber eine S7 mit entsprechendem CP sollte das können.


----------



## JesperMP (29 August 2008)

Profibus
..TwinCat Master - S7 Slave
..TwinCat Slave - S7 Master
..TwinCat Master - DP Coupler - S7 Master

Modbus TCP
..TwinCat Modbus TCP library - S7 Modbus TCP library.

ProfiNet
..Twincat Profinet Device - S7 Profinet Controller.
..Twincat Profinet Controller (ab 4. quartal) - S7 Profinet device.


----------



## Commander83 (9 September 2008)

*Inat*

Es gibt von INAT ein Softwaretool "TwinCAT PLC Communicator".
Mit diesem Softwaretool  kann man problemlos Daten von S5 und S7 Steuerungen auslesen.


----------



## drfunfrock (9 September 2008)

Wie wäre es mit RS232?


----------



## Commander83 (9 September 2008)

Wie kann man das über RS232 machen?


----------



## drfunfrock (9 September 2008)

Zuerst ein Protokoll ausdenken: 

Z.B. 

1) TwinCat sendet eine Art Registernummer mit einem angehängten "R" für Lesen und einem 0x0a an die S7. Die S7 antwortet mit Registernummer/Leerzeichen/Inhalt/0x0a an Twincat. Das alles natürlich im Ascii-Format, damit es sich leicht per Terminalprogramm debuggen lässt. Das Zeilenendezeichen ist günstig, weil die Bibliotheken in der Regel dieses automatisch als Zeilenende interpretieren und man muss nicht selbst die Zeilenlogik bauen.
Von Twincat: <Reg><R/W> [Wert im Falle des Schreibens]<Zeilenende>
Von S7: <Reg> <Wert><Zeilenende>

2) Oder folgendes etwas freieres Format wählen: 
Von Twincat: <Kommando> <Wert><Zeilenende>
Von S7: <Kommando> <Antwort><Zeilenende>

Ein Nullmodemkabel zwischen den SPSen anschliessen und fertig. Das sollte für eine einfache Kommunikation ausreichend sein. Bei 9600Baud braucht ein Zeichen  etwa 0.1ms. Da auch eine ModBus- oder Profibuskommunikation ein Protokoll erfordert, unterscheiden diese sich nur in der Geschwindigkeit.


----------



## Commander83 (9 September 2008)

Gut zu wissen dass so etwas auch möglich ist. Bei meiner Anwendung hab ich allerdings dass Problem dass sie Steuerungen in verschiedenen Hallen sind. Da kann ich kein Nullmodem Kabel ziehen.


----------



## drfunfrock (9 September 2008)

Dann kannst du auch RS485 nehmen. Wenn du ein geschirmtes Kabel wie ein Profibuskabel verlegst (Erde an beiden Seiten), hast du dieselbe Funktionalität. 

Ansonsten kann man das auch mit TCP/IP machen. Die TwinCat-TCP/IP-Server Lib  ermöglich ein äquivalentes Protokoll, wie das über RS232. Wie das auf der Siemensseite aussieht, kann ich allerdings nicht sagen, sollte eigentlich nicht das Problem sein. Dann ist die Siemens-SPS der Server  und Twincat der Client. Mit telnet kann man die Kommunikation einfach testen! Das ganze könnte man auch dann über WLAN-koppeln und Richtantennen koppeln, aber Kabel gefallen mir besser.


----------



## Hand (9 September 2008)

Ein Raw-Protokoll funktioniert auch über Ethernet mit TCP oder UDP von beiden SPSen aus ;-)

Das einfachere währe das Fetch/Write Protokoll in TwinCat zu implementieren dann musst auf Siemens Seite
nur bissl was konfigurieren und kannst auf E/A und DB's bis Adresse 255 zugreifen. Steht am Ende des CP Handbuchs.

Noch einfacher währe über TwinCAT ADS und libnodave, dann muss aber ein extra Prog laufen.


----------



## drfunfrock (10 September 2008)

Hand schrieb:


> Das einfachere währe das Fetch/Write Protokoll in TwinCat zu implementieren dann musst auf Siemens Seite
> nur bissl was konfigurieren und kannst auf E/A und DB's bis Adresse 255 zugreifen. Steht am Ende des CP Handbuchs.



Das schüttelt es mich immer, wenn ich direkte Adressbereiche in Programmen sehe.


----------

