# Tcp/ip



## dannyli (22 Juni 2009)

Hallo Leute

Bin mir nicht ganz sicher ob das thema hier in diesen bereich passt aber ich versuche es einfach mal.

Kennt jemand Links bezüglich tcp/ip Grundlagen, über die Ports die für die Kommunikation genutzt werden spezielll Port 102 für kommunikation mit libnodave oder kann mir jemand allgemein mit wissen darüber helfen.....

Gruss dannyli


----------



## pvbrowser (22 Juni 2009)

dannyli schrieb:


> Kennt jemand Links bezüglich tcp/ip Grundlagen, über die Ports die für die Kommunikation genutzt werden spezielll Port 102 für kommunikation mit libnodave oder kann mir jemand allgemein mit wissen darüber helfen.....



Die beste Beschreibung von TCP/IP habe ich hier drin gefunden.
UNIX Network Programming, Volume 1, Networking APIs: Sockets and XTI, Prentice Hall, 1998. 
http://www.kohala.com/start/

Daran habe ich mich bei der eigenen Programmierung gehalten.

Hier kannst Du sehen, wie das mit TCP bzw. UDP gemacht wird.
http://pvbrowser.de/pvbrowser/sf/manual/rllib/html/classrlSocket.html
http://pvbrowser.de/pvbrowser/sf/manual/rllib/html/classrlUdpSocket.html

ISO_ON_TCP (port 102) ist eine "Aufsattelung" eines Paket orientierten Protokolls auf das Stream orientierte TCP.
Das wird z.B. von Siemens zur Kopplung mit deren SPS verwendet.
http://pvbrowser.de/pvbrowser/sf/manual/rllib/html/classrlSiemensTCP.html

Ein Paket mit ISO_ON_TCP wird also mit einem extra Header versehen und über TCP übertragen.
Siehe read und write iso:
http://pvbrowser.de/pvbrowser/sf/ma...mensTCP.html#a43942074ce5a2e879994a783a784fe2
http://pvbrowser.de/pvbrowser/sf/ma...mensTCP.html#5f09e6c3ef726892e398b96a292c733a

Beim Verbindungsaufbau werden bei ISO_ON_TCP zunächst die sog. TSAP (transport service access point) ausgetauscht. Nach erfolgtem Verbindungsaufbau werden dann mit den obigen read/write iso Datenpakete ausgetauscht.
Hier der Verbindungsaufbau.
http://pvbrowser.de/pvbrowser/sf/ma...mensTCP.html#beea97b7654d676601381247917533cb

Da Siemens hier Geheimniskrämerei macht, muss man das reverse engineeren. Siehe auch libnodave von zottel (der sich auch hier rumtreibt)
http://libnodave.sourceforge.net/index.php

Welche Ports für welches Protokoll vergeben sind kannst Du unter Linux in der Datei
/etc/services
sehen.

Für Port 102:
grep 102 /etc/services | grep -i iso
iso-tsap        102/tcp    # ISO-TSAP Class 0
iso-tsap        102/udp    # ISO-TSAP Class 0

Hier findest Du die angegebenen Beispiele:
http://pvbrowser.org


----------



## pvbrowser (22 Juni 2009)

Hier ist noch ein Überblick über Siemens Kommunikationsmöglichkeiten.
http://sites.inka.de/heisch/de_geraete.html

Du siehst, dass es mehrere Möglichkeiten gibt, um nach Rom zu kommen.
Das Ganze ist historisch gewachsen.


----------



## Kaffeesüchtig (23 Juni 2009)

Hallo,

BTW gibt es irgendwo gute Literatur über die verschiedenen Verbindungsarten?
Also Unterschiede ISO-on-TCP, S7online, Aufbau der verschiedenen Telegramme (bis in TCP IP Form) und Handling auf SPS Seite?

Gruß


----------



## dannyli (23 Juni 2009)

Hallo zusammen

ich habe bereits meine ersten Projekte mit libnodave erstellt. mich würden aber noch ein paar theoretische Hintergründe interessieren. kann mir jemand erklären was die libnodave eigentlich macht oder besser gesagt wie es arbeitet? worauf greift libnodave zu auf die s7Funktionen? oder handelt es sich bei libnodave um eine art socktprogrammierung?
Bin für jede hilfe dankbar.


Gruss dannyli


----------

