PDA

View Full Version : Mit TwinCat Daten auslesen von S7-300



Commander83
29.08.2008, 14:41
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.08.2008, 15:08
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.08.2008, 15:41
Profibus
..TwinCat Master - S7 Slave
..TwinCat Slave - S7 Master
..TwinCat Master - DP Coupler - S7 Master

Modbus TCP
..TwinCat Modbus TCP library (http://www.beckhoff.de/german/twincat/twincat_modbus_tcp_server.htm?id=512251313) - S7 Modbus TCP library. (http://support.automation.siemens.com/WW/view/en/22660304)

ProfiNet
..Twincat Profinet Device (http://www.beckhoff.de/german/twincat/twincat_profinet_io_device.htm?id=51221035592) - S7 Profinet Controller.
..Twincat Profinet Controller (http://www.beckhoff.de/german/twincat/twincat_profinet_io_controller.htm?id=51221035864) (ab 4. quartal) - S7 Profinet device.

Commander83
09.09.2008, 09:24
Es gibt von INAT ein Softwaretool "TwinCAT PLC Communicator".
Mit diesem Softwaretool kann man problemlos Daten von S5 und S7 Steuerungen auslesen.:D

drfunfrock
09.09.2008, 11:54
Wie wäre es mit RS232?

Commander83
09.09.2008, 11:57
Wie kann man das über RS232 machen?

drfunfrock
09.09.2008, 12:41
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
09.09.2008, 12:47
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
09.09.2008, 13:08
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
09.09.2008, 21:20
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.09.2008, 09:24
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.