Here is the way that I prefer to do the conversion to Engineering Units. If the raw signal is 4 - 20 mA, I first shift it to 0 - 16. So a 0 - 32767 raw analog input value has 6553 subtracted from it. Next, I multiply by the full scale Engineering Value, in your case, 150. Lastly, I divide by 80% of 32767 or 26214.
This boils down to % Input x Full Range Value. Now to do this in a Compute Statement: ((Raw - 6553)*150/26214)
If your input is truely bipolar,as you stated, then you would have to refigure the 20% and 80% values and it would become:
((Raw - 13106)*150/52427). I never use bipolar for 4-20, but I think that you will need to shift it to get 0 - 65534, by adding 32767 to the raw value first to get rid of negative values.
Note: When dealing with this conversion in integer registers, it is necessary to multiply before dividing to keep the rounding from messing up the calculation. Also, in some PLC systems, you can enable 32 bit math so I do that before this calculation and send the result of the multiplication portion to the 32 bit result register, then in a second step, you would do the division from the 32 bit result register, back to an integer register. This will prevent large numbers from getting clipped off do to limitations in head room in the integer registers.
If it was me, I would make sure the the analog input was scaled 0 - 32767 first (not -32768 to 32767)because more resolution is not going to get you anything useful. Then with 4-20, the actual range would be 6553 - 32767.
The reason that I like to do it this way, is because you can watch it work and catch errors. There are a number of ways that will result in the same performance. Also, I would always model it first in Excel so that you are certain to get the factors right.