Floating Point numbers (REAL datatype) and Double Integer (REAL) datatypes are both 32 bits long, but they are not the same.
REAL datatype tags in ControlLogix use the IEEE 754 single-precision format. You can read up on it and understand the whole mantissa / exponent thing if you like.
Think of that pair of INT array elements as hexadecimal, where 16544 = 0x40A0 hex.
INT[0] = 16544 dec = 40A0 hex
INT[1] = 0 dec = 0000 hex
If you were to COP both of these into a REAL datatype tag (use Length 1 in the COP instruction), the first element would go in the lowest two bytes, and the hexadecimal representation woul be like this:
REAL = 000040A0 hex
Check how that would convert to a floating point number using this website:
http://babbage.cs.qc.edu/courses/cs341/IEE...E-754hex32.htmlYou will see that in that order, those values translate into... well, some very tiny number.
In this order, though:
REAL = 40A00000 hex = 5.0 floating-point decimal
You could use the Swap Bytes instruction, or you could just set up the INT array elements in the right sequence before you use the COP instruction to move them into a REAL datatype tag.