I have a system where a TRB145 is collecting data from 6 Modbus RTU capable Electrical Power Meters (type NA96+). The data that I need to collect is all over the modbus register map, plus it has to be collected from different type of registers (unsigned double word, unsigned word, signed word). This means that for each Power Meter I have to set up at least 12 different “Request Configuration”-s. That is a tolal of 6 x 12 = 72 Modbus calls.
I set up the system with “Modbus Serial Client” and “Data to Server” with data sending every 15 minutes, but it seems that sometimes the system cannot get data due to commincation errors. I tried many diffierent combinations of “Timeout” and “Number of Timeouts”, but the problem persists. I even went down to a lower baud rate, but that didn’t solve the problem.
I have two questions:
In such cases where there are a lot of Modbus calls, what is the recommended setting for “Timeout” and “Number of Timeouts”?
How can I set “Modbus Serial Client” and “Data to Server” (via MQTT to server) to collect data every 10 seconds, but to send only the last item (and not all collected items) every 15 minutes to the server via MQTT?
Could you please elaberate a little bit your suggestion? I already use data filtering by request name, but what do you mean “enter the variable name”? Where should I enter the “variable name”? And what " variable name"?
I set up a “Modbus Serial Client” to query certain modbus registers, let’s say every 6 seconds. I set up the Data-to-server function to send data every 60 seconds. With this setup Data-to-server will send 10 pieces of data every 60 seconds.
But I don’t want that. I want the “Modbus Serial Client” to read the Modbus registers every 6 seconds because I want to be sure that there is some data that the Data-to-server can send exactly one data every 60 seconds, even if there is a lot of read errors in Modbus reading.