I don't think I explained myself quite right in the last post.
The copy instruction (COP and the CSP variant) will copy a byte-for-byte version of the source data to the destination data with the length defined by the destination data type.
So if you are copying an array of ten DINTs to another array of ten DINTs you would be copying a total of 40 bytes (10 DINT * 4 bytes per DINT). The command line instruction would be:
COP Source_Array[0], Dest_Array[0], 1
Now let's assume that the data you are concerned with will fit into a SINT so you make your array a SINT array. You do that same copy:
COP Source_Array[0], Dest_Array[0], 1
but now the arrays are SINT. The number of bytes transferred is based on the destination data type so you end up with 10 bytes (10 SINT * 1 byte per SINT). It still comes down to raw data transfer at this point and copying 40 bytes will take longer than copying 10 bytes.
Keith
PS: I think I missed a post in there so this might not make sense.