TRB145 configuration for ABB b24

How can I configure TRB145 to send request to ABB b24 smart meter over RS485, requesting metervalues and send that data to server over Data to Server?


According to the manual here, the meter supports Modbus, so you can use that. Follow the instructions in their manual to set up the meter for Modbus. Afterwards, from TRB145 side you will need to configure Modbus Serial Master (information here) to request information from the meter. Then, this collected information can be sent to the server using Data to Server functionality (information here).

This would be similar to the example here, but instead of a Modbus Slave simulator software on a PC, it will be your meter.

Kind Regards,

Thanks for the reply, at the moment I am getting Request failed, result: Failed to get response: Illegal data address, I need to send request frame to smartmeter, like picture below, but I dont see this functionality in TRB145 router, only First register number, register count/values?


I assume that you get ‘illegal address’ error when using the ‘test’ button?

It seems that the connection is there, but you are trying to read wrong addresses (
First Register Number field in Modbus Master configuration). A few notes:

Check the Modbus Register Mapping table on the meter. You may need to convert Hex to Decimal (for example, using this tool here).

Also, It is important to note that Teltonika Networks devices use Modbus Register Numbers, while some other third-party devices may use Modbus Register Addresses. The difference between an address and a number in this context is that numbers start from 1, while addresses start from 0. Thus, if a specific value is stored in Modbus Register Address 101 on the Modbus Slave, then, to read this value from TRB, you need to set Modbus Register Number to 102.

Also, if the documentation on the Meter specifies Modbus Register Address of, for example, 40101, you can omit ‘40’ and add +1 (we are reading numbers). So in TRB, try using 102 as the starting register number.

You can try different values/settings to verify that everything works as you need it to.

Kind Regards,

According to meter documentation I need to send request frame like this 1 3 80 0 0 24 84 192 in decimal but Register count/values supports only single value, number, can you help, where to input this requested frame?


The register count/values depends on the function code. In your case, it is set to function 3 (read holding registers). With this function, you can specify how many registers you want to read (single value) starting from the ‘first register number’.

In case you select function code to be 16 (set multiple holding registers), you can specify values with spaces. It might be better if you select Data type HEX if you write multiple registers. This way, you can specify HEX values with spaces (for example, like ‘0A 0B 0C 0D’).

Not completely sure about your frame, but it seems like:

  • ‘1’ is the slave ID,
  • ‘3’ is the function code,
  • ‘80’ is the starting address (probably register number 81 in TRB),
  • Double ‘0’ is probably because you tried to convert from HEX (was it 0x50 and 0x00 as starting address? If so, it should be simply 80 (likely 81 on TRB)).
  • ‘24’ is the number of registers

I assume ‘80 0’ from string is simply 80, and ‘0 24’ is simply 24 (due to conversion).

Let me know if you are able to read Modbus data with this request.

Kind Regards,

solved, works now!

1 Like

This topic was automatically closed after 15 days. New replies are no longer allowed.