I have an RUT956 with firmware RUT9M_R_00.07.05.
I installed Azure IoT package.
I have enabled Modbus TCP Server on port 502.
I have enabled Modbus TCP Client to poll address 142 with a length of 2 and 32bit INT 1,2,3,4 data type.
The period is set to 10.
I have an analog input connected to the correct inputs. When I press the Test button I can see the analog input value (e.g. 3192 = 3.192V).
I configured Data to Server to send Modbus requests to Azure IoT at a send interval of 10.
I turned on Azure Iot Hub Monitor to watch messages in Visual Studio Code.
For example:
[IoTHubMonitor] [4:37:21 PM] Message received from [TemperatureProbe/Teltonika1]:
{
"TemperatureProbe": {
"timestamp": 1699950410,
"date": "14/11/2023 16:26:50",
"bdate": null,
"server_id": 1,
"bserver_id": 1,
"addr": 142,
"baddr": null,
"full_addr": "400142",
"size": 4,
"data": "2941",
"raw_data": null,
"server_name": "AnalogInput",
"ip": "localhost",
"name": "AnalogInput"
}
}
There are two strange behaviours.
-
The problem is that the Teltonika router sends about 2000k messages in 5 minutes!
I configured the intervals to 10 in the ModbusTCP client and in the Azure IoT configuration, which I assume is in SECONDS? Not milliseconds? Why is it flooding Azure IoT with so many messages? -
It doesn’t just send the most recent message, it sends every reading since Modbus TCP Client was configured. Even if I turn off the Modbus TCP Client and turn it back on again, or turn off the Data to Server, it seems to buffer all of the messages. Hundreds of messages. Why does it buffer every previous message?
I’m not sure what I’m doing wrong, of if this is a bug with the Azure IoT package. I was using AWS IoT MQTT using certificates and that was working fine with the same Modbus TCP Client configuration.
Any help or suggestions would be appreciated.