- Beiträge
- 11.607
- Reaktionspunkte
- 3.867
-> Hier kostenlos registrieren
@blockmove
Ganz steige ich bei deinem Beispiel noch nicht durch...
Du kopierts die Daten von der unter PSrc hinterlegten Adresse auf den InstanzDB?
Die Destinationadresse im IDB beginnt bei 0.0 und das UDT ist 280 Byte lang - bin ich soweit richtig?
Was aber wenn sich die Länge des UDT ändert? Oder jemand einen zusätzlichen IN am FB Parametriert?
OK ist ein nicht ganz passendes Beispiel ... Sorry.
Wenn du einen Any-Pointer als IN-Parameter anlegst, dann bekommst du alle notwendigen Daten in diesem Pointer.
Die Destination ist NICHT DIX0.0, sondern die Daten werden vom Bahn-DB DBX0.0 in die UDT #Bahn im Stat-Bereich (Instanz) kopiert.
Deren Adresse muss ich überhaupt nich wissen, denn dies erledigt aufgrund der symbolischen Adressierung der Compiler für mich.
Zusätzliche Parameter spielen überhaupt keine Rolle. Beim Übersetzten passt der Compiler dies automatisch an.
Vorteil ist, dass ich dann im FB vollsymbolisch auf die Daten in der UDT zugreifen kann. Am Ende des FBs kopiere ich dann die Daten von #Bahn wieder in den passenden DB.
Gruß
Dieter