It seems that nobody knows...And I don't either.
The only help I can give you is to tell you how I did it. (not to a plc but to another robot)
I use a 15 bit group IO plus a separate input for negative numbers.
Ofcourse you can use 16 bit signed integers, but I use the fact that it is negative also for other porposes, and this makes life much easier.
This gives you a range of 0 to 32767 positive and negative.
I use three additional IO for handshaking.
One -hello I need a position- line
And two -I am ready, are you ?- lines
A little more precision is welcome but you don't need real numbers.
In the sending robot (for you the plc) for X, Y and Z, multiply the number by 10 and send it, and divide by 10 in the receiving robot.
For W, P and R I multiply by 100 for even more precision.
This gives me the range that I need and a better precision than the repeatability of the robot.
If you find a better way, please let me know.