TRB141 Analog Current Loop mA value to internal Register value

Hi

I´m using TRB141 with Current Loop configuration on the analog input. The Input/Output status screen shows the correct mA value:

When I retrieve that data using the Modbus TCP client, register value 142, I get a value that I don´t see how to match with the mA value:

What´s the formula to convert the register value to mA values?

Thanks

Gabriel

This is my modbus client configuration to read the Analog current loop:

Greetings, @Gabriel79 ,

Welcome to Teltonika Community!

The good news is that your register configuration looks correct: register 142, count 2, 32-bit UINT, Read Holding Registers. However, the returned value of 2091 doesn’t line up with the 6.13 mA shown in the WebUI, and I think I know why.

The analog input value is stored in microamps (µA), so 6.13 mA should appear as roughly 6130 in the register. The mismatch you’re seeing points to a byte order issue - the TRB141 and your Modbus client aren’t agreeing on how the two 16-bit words that make up the 32-bit value are ordered.

Could you try switching the byte order from 1,2,3,4 to 3,4,1,2 and run the test again? That swaps the word order and is a common fix in these situations.

To help narrow it down further, it would also be useful to know:

  1. Does your Modbus client show the raw hex response? If so, could you share it?
  2. Which Modbus client tool are you using?

Once the byte order is sorted, converting to mA is straightforward:

mA = raw register value / 1000

So a raw value of 6130 would give you 6.130 mA — matching what you see in the WebUI.

Let me know how it goes!

Best regards,
V.