# STRUCT an FB übergeben/übernehmen bzw. ARRAY in STRUCT kopieren



## Elektricks (20 April 2017)

Hallo,

ich möchte den FbMbSimpleServerTCP nutzen um MOdbus Variablen zu lesen und zu schreiben.
Ich kann diese in ein ARRAY schreiben. Kein Problem. Die Aussagekraft einer einzelnen ARRAY-Variable lässt aber zu wünschen übrig. Daher würde ich es gerne in eine DUT oder GVL schreiben, wo ich die einzelnen Variablen bezeichnen kann wie ich möchte. 

An den FB kann aber keine DUT direkt angehängt werden. Es kommt der Fehler "DUT kann nicht in Typ ARRAY of WORD konvertiert werden"
Kennt hier jemand eine Möglichkeit direkt ein DUT an einen FB zu hängen?

Andernfalls: wie kann ich ein ARRAY in eine DUT kopieren und andersherum? 
Bei Siemens gibts da BLOCKMOVE... gibts das hier auch? 



Vielen Dank für eure Unterstützung!


----------



## oliver.tonn (20 April 2017)

Zum kopieren MEMCPY

Von irgendwas mit Internetzugang gesendet


----------



## Elektricks (20 April 2017)

OK. Danke. ich benutze übrigens e!cockpit. DA nennt es sich MemCopy.
Ich habe nun aber noch das Problem den Pointer auf die Destinationvariable zu bekommen.
Beim Source kann ich einfach das Array ranziehen. Wie muss der Syntax, bzw der Pointer für die Destinationvariable aufgebaut sein, damit ich in eine Globale Variablentabelle zeigen kann?


----------



## Fakrae (21 April 2017)

Könntest du nicht ein Union definieren? Ein Parameter das Array und an den Funktionsbaustein übergeben und danach den Zugriff über das DUT (gleicher Speicherbereich) - dann hast du überhaupt kein Problem mit Kopieren.


----------



## Tobsucht (23 April 2017)

Hallo,

der Vorschlag von Fakrae ist der eleganteste.
Bei einer bzw einem Union liegen alle angegebenen Variablen im gleichen Speicherbereich.
Du kannst somit Deine Struktur und das Array of Word im Union ablegen.
Über Modus wird das Array ausgetauscht und in Deinem Programm arbeitest Du mit Deiner Struktur.


----------

