Hi,
As you figured out it won't work because DataIn[3] is a byte sized variable, it can only hold values between 0 and 255. To do what you want something like this may work:
Code:
Delay1 = DataIn[3] * 256 + DataIn[4]
OR
Code:
Delay1.HighByte = DataIn[3]
Delay1.LowByte = DataIn[4]
In both examples DataIn[3] is the most is the upper 8 bits, DataIn[4] is the lower 8 bits of the word sized Delay1.

/Henrik Olsson.