TIA 1511C-1 PN -> MOVE_BLK_VARIANT kopiert nichts

asm

Level-2
Beiträge
71
Reaktionspunkte
8
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe hier mit TIA (mal wieder) ein eigenartiges Ding m Hut. Der MOVE_BLK_VARIANT kopiert aus irgendwelchsen Gründen nichts bei mir. (CPU ist eine 1511C-1 PN)

Folgende SCL-Zeile ist in einem FB vorhanden:
Code:
#RetVal := MOVE_BLK_VARIANT(SRC := #savedata.StatusDevice, COUNT := 1, SRC_INDEX := 0, DEST_INDEX := 0, DEST => #hmi.StatusDevice);

Sowohl #savedata.StatusDevice als auch #hmi.StatusDevice befinden sich sim Static des Instanz-DB's.

StatusDevice ist ein UDT mit einem Array of [0..63] of Byte.

Die temp. Variable #RetVal zeigt online 0 an.

Folgendes funktioniert:
Code:
FOR #sz_1 := 0 TO 63 DO
    #hmi.StatusDevice.Device[#sz_1] := #savedata.StatusDevice.Device[#sz_1];
END_FOR;

Hat jemand eine Idee was das sein kann? Habe vor kurzem TIA von v15.1 auf v15.1 + Update2 updated.. hoffe aber mal nicht, dass es daran liegt :-)

vG,
Martin
 
Zuletzt bearbeitet:
Moin,
warum verwendest du den MOVE_BLK_VARIANT? Wenn Beide Variablen ein Array of Byte sind, dann geht doch auch:
Code:
[COLOR=#333333][FONT=Courier]#hmi.StatusDevice.Device := #savedata.StatusDevice.Device;[/FONT][/COLOR]
Warum beschaltest du COUNT mit 1 wenn du alle Elemente kopieren willst? :confused:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das SCL-Konstrukt ist nicht meine Idee, ich bin nur der (Dumme), der auf der Baustelle nun die Sache übernommen hat. ^^

Aber StatusDevice ist doch ein UDT.. da ist doch die Definition mit count = 1 richtig.. ?
 
meines Erachtens ist 1 am COUNT nur richtig, wenn es sich nicht um ein Array handelt.
Code:
FOR #sz_1 := 0 TO 63 DO
    #hmi.StatusDevice.Device[#sz_1] := #savedata.StatusDevice.Device[#sz_1]; END_FOR;
das spricht aber dafür, dass es ja doch beides Arrays sind. Auch wenn vielleicht eine der Variablen in einer UDT steckt. Ein Bool bleibt ja auch ein Bool, auch wenn er Teil einer UDT ist.
Probiere es doch mal aus mit Count := 64
 
Zurück
Oben