Hallo Larry,

hier liegt mein Denkfehler.
Die FC5 tut stupide ihre Arbeit, zerlegt den auf SEND übergebenen 10Byte langen Wert als Zeiger um auf die zu versendenden Quelldaten zuzugreifen.

Allerdings tut natürlich vorher schon der Step7-Compiler seine Arbeit und interpretiert den auf SEND gelegten Wert entsprechend dem dort liegenden Variablentyp. Es könnte ja auch eine Konstante übergeben werden.

Im Falle von meinem UDT "Source" betrachtet er diesen UDT schon als den zu versendenden Quelldaten-Bereich und übergibt der FC5 auf SEND den Zeiger auf UDT "Source" im Lokaldaten-Bereich.
Im Falle eines ANY-Pointers wird auf SEND der Inhalt des Pointers gelegt, und damit der tatsächliche Quelldaten-Bereich zugewiesen.