# Protokollbeschreibung ISO on TCP



## Thomas_v2.1 (28 April 2007)

Hallo,
ich suche für die Programmierung eine Protokollbeschreibung für ISO on TCP.
Es gibt ja die RCF1006:
http://www.faqs.org/rfcs/rfc1006.html

aber irgendwie kann ich dort nicht den genauen Protokollaufbau finden.
Hat jemand vielleicht einen Link oder ein Dokument mit einer Beschreibung die etwas vollständiger ist?
Hab schon gegoogelt, aber irgendwie ist nichts gutes zu finden.

Bei Libnodave scheinen einige TCP-Funktionen auch die Daten in ISO einzupacken, aber da ist das alles etwas konfus :-/

Danke und Gruß
Thomas


----------



## Zottel (28 April 2007)

Die RFC1006 beschreibt lediglich das "Einpacken" von ISO-Paketen in TCP-Pakete.
Das ISO-Protokoll, das ursprünglich -ähnlich wie IP- als Transportkontrollschicht auf Ethernet aufsetzt, ist in ISO 8073 beschrieben.
Beide Protokolle bzw. der von Siemens genutzte Teil davon sind nicht sonderlich kompliziert: Die ISO-Pakete erhalten einen Header nach RFC1006: 03 00 <high byte der Länge><low byte der Länge>. Aus ISO 8073 werden die Pakete zum Anfordern und Bestätigen einer Verbindung genutzt (siehe daveConnectPLCTCP), danach Datenpakete. Diese beginnen mit 02 f0 80 (02 f0 00 falls weitere Pakete folgen würden). Siehe daveExchangeTCP. Die ISO-Datenpakete haben als "Nutzlast" Pakete (PDUs) eines Siemens-spezifischen Protokolls, das ich hier S7-Kommunikation nennn will. Ihre Bildung und Dekodierung macht den größten Teil von Libnodave aus. Der Aufbau ist partiell in der Dokumentation zu Libnodave bschrieben. Weiterhin kannst du beim Betrieb der Testprogramme oder beliebiger Anwendungen von libnodave durch Einschalten des Debug-Modus diese Pakete mitlesen.


----------



## Thomas_v2.1 (28 April 2007)

Hallo Zottel,
was ich mit "konfus" meinte waren gerade diese unkommentierten magic-numbers in der daveExchangeTCP().
Deswegen wusste ich nicht genau, ob diese nun zu ISO oder schon zur S7-Kommunikation gehören.
Ich werde mir die Funktionen aber nochmal genauer ansehen.


----------



## Thomas_v2.1 (5 Mai 2007)

Hab noch eine gute Protokollbeschreibung (auf deutsch gefunden):

http://www.synapse.de/ban/HTML/P_ISO/Ger/P_iso.html

Thomas


----------

