Wir können ja erstmal mit dem NC Upload anfangen, denn der Ablauf ist noch in Teilen mit dem identisch welche die SPS verwendet, außerdem bekomme ich dadurch evtl. auch noch eine etwas bessere Struktur in die SPS-Teile.
Bei der SPS gibt es nämlich auch PI-Dienste. Aus dem SPS-Programm heraus lässt sich aber nur der für Stop und für Start aufrufen, darum fehlt mit da etwas der Vergleich.
Wie aus diesem Thread ersichtlich:
http://www.sps-forum.de/simatic/587...nd-den-pi-dienst-_n_f_pror-oder-nur-pror.html
sind bei der NC noch weitere Funktionen möglich. Mir ist bisher unbekannt, wie die Parameter des Funktionsaufrufs auf dem Netzwerk übertragen werden. Laut den NC-Handbüchern existieren dabei nur zwei Typen von Parametern: INT oder STRING.
In dem 1. Telegramm in deinem File Upload mit Function 0x28, wäre meine aktuelle Vermutung, dass die erste Längenangabe für die Länge der Argumente (gesamt) ist, und dann wie auch immer die einzelnen Argumente dort hintereinandergehängt werden. Als letztes kommt dann der PI-Dienst der aufgerufen werden soll als STRING.
Oder der Partner entscheidet anhand des angegebenen PI-Dienstnamens, wie die Argumente zu interpretieren sind. Das wäre unschön, denn dann muss ich vorab alle Argumente und Argumenttypen kennen.
Vielleicht kannst du noch von anderen PI-Dienstaufrufen mit diversen Parametern Mitschnitte machen, um hoffentlich damit herausfinden zu können wie die Argumente codiert werden. Dann lässt sich hoffentlich eine universelle Funktion schreiben, die einen PI-Dienstaufruf auf dem Netzwerk abschickt.