# 16 bit representation of a 4-20mA signal

I have a temperature sensor with a range of -50 to +150 Deg C . The corresponding current out put is 4-20mA.

I have a 4 Channel EtherCAT converter which converts this 4-20mA into a digital byte array. The value read during three trials is 00008F45 , 00005145 , 00000046 when the temperature is around 26 Deg C approx.

I am wondering how to correlate the 4 byte array into temperature values ?

And just as an observation : All the other 3 unconnected channels read 41800000. ( The value 41 does not seem to be part of the converted value and so its the balance 3 bytes which are used ? )

Firstly you haven't told us what converter this is - datasheet, product page or at least full model number please.

0x41800000 could be the binary rep for single-float value 16.0

In fact the other values might be little-endian single floats, 4576.0, 3344.0 and 8192.0 respectively,
which suggests a 13 bit ADC (8192 = 2^13)

Of course i was waiting for the relevant data from client. I have attached two images which give full details on the data from Beckhoff EP3184 analog input modules.

Hope it should clarify things now…

OK it finally boils down to this ...

The 4mA from sensor corresponds to -50 Deg C and 0 counts.

The 20mA from sensor corresponds to 150 Deg C and 32768 counts.

I have got actual readings of 00008F45 , 00005145 , 00000046 corresponding to 26 Deg C approx.

Rearranging the bytes we get 458F , 4551, 4600 .... getting decimal 26 from these values seems to be the issue !!

Hmm, that is also very plausible, but indicates about 12.5mA (have you measured that with
a multimeter to check)

12.5mA is about 59C by my calculations...

Check the actual output from the sensor, then it should indicate whether the sensor or the converter
is the issue. Perhaps the converter has a configurable offset?

Of course the physical current value from sensor was measured and found to be 10.2mA which corresponds to about 26 Deg C. What does not tally is the output from the module which ought to have been 0x3147.

Then I suspect it has been calibrated and needs reseting to factory default. Or is this a new unit?