Anmerkung
Hi Marco, Das ist so nicht ganz richtig. Ethernet bedeutet nicht zwangsläufig IP. Der Ethernet Frame hat neben den beiden MAC Adressen auch ein Feld, in dem ein Code für den Typ der folgenden Daten steht. Heutzutage ist das meistens IP. Aber eben weder zwangsläufig noch immer. Microsoft hatte z.B. in der Anfangszeit Netbios über Ethernet gefahren. Auch ohne IP. Und EtherCAT ist wieder ein anderer Typ. Auch ohne IP. Allerdings bietet EtherCAT seinerseits die Möglichkeit, auch IP-Pakete zu verschicken. Nennt sich IP over EtherCAT. Da sind die IP-Pakete aber nicht in einen Ethernet Frame eingebettet, sondern in einen EtherCAT Frame. Und dieser wiederum ist in einen Ethernet Frame eingebettet. Und was das angeht, komme ich hier in Kürze auf eine Frage zurück. Wir haben hier die Aufgabe, Geräteparameter per TFTP hin und her zu schieben, über EtherCAT. Download geht, Upload nicht. Keiner weiss, warum. Aber hier werde ich erst mal versuchen, mich in die Materie etwas einzulesen. Aber wenn Jemand gute Hinweise hat, wo ich da was lesen sollte...
Gruß Fliewatüüt *HonkHonk*
Nachtrag
Ich bin inzwischen etwas weiter. Und habe eine Frage zum TFTP Protokoll. Es sieht so aus, als ob bei einem Write Request zunächst keine Daten mitkommen. Das EtherCAT Gerät sendet ein ACK, das auch beim Client ankomt. danach sendet der Client die ersten max. 512 Bytes. Danach sollte das EtherCAT Gerät ein weiteres ACK schicken, mit der nächsten Blocknummer. Aber genau das unterbleibt. Es werden weitere ACKs geschickt mit Blocknummer 0.
Was ich beobachten konnte, ist, dass ein Upload mit Dateien kleiner als 512 Bytes klappt. Wenn ich TFTP richtig verstanden habe, erwartet der Client in diesem Fall gar kein weiteres ACK vom EtherCAT Gerät, oder? Deshalb funktioniert das. Habe ich das richtig verstanden?
Wenn das richtig ist, muss ich nur noch rausfinden, wer hier die Blocknummer im ACK verhunzt: Das EtherCAT Gerät, oder der Master, der die standard IP/UDP Pakete in EtherCAT einpackt.