Use this:
http://www.dataforth.com/catalog/doc_generator.asp?doc_id=3&attr_index_id=65
It will isolate the input of 0-20V and output a 0-10V signal that is 1/2 of the input voltage.
Now we have to scale it. Here is where the bottom dwelling ML1K brick shows itself to be dumber than a brick - as AB invests engineering resources to redo that which it has already done inorder to dumb down it bricks because "bricks should be stupid."
From the manual we can see that the maximum input voltage is 10.5V and that 10.5V will return 32767, the maximum value an integer can have. We can also see that at 10V the value it returns is 31207. Now the dumbed down ML1K has had the SCP instruction stripped out of it and it doesn't do floating point math. However we do have the SCL instruction and we can scale our voltage into millivots, so that at 18V we will get 18000.
Although the max process variable is 18V, the signal conditoner has a 20V input and scales its output accodingly, so 20V is what we need to use.
To calculate the rate parameter of the SCL intruction we take the engineering units range, 20000 mV and divide it by 31207.
20000/31207 = .64088185. Then we multiply it by 10,000 to get 6408.8185. Rounding, we select the value of 6409 as the rate parameter for the SCL instruction. The offset in this case will be zero.
So programming this rung:
SCL I:0.4 6409 0 N7:0
will scale the analog input 0 and put the millivolt value in N7:0. By using millivolts we can infer the decimal place, thus 17500 is 17.5 volts.