Lag and unsuccessful tag value write via MQTT to modbus TCP communicated devices

Here is the ignition structure.
image
And here's the issue I encountered.

  1. When I write value from local ignition edge designer to a OPC tag, which is connected to a field modbus device, the value will be written to the device straightaway.
  2. but when I write the same value on the ignition gateway designer under the path "MQTT Engine/Edge Nodes/.......", after I changed the value and clicked "enter" keyboard button, the changed value will be entered to the tag, then the old value will appear for a couple of second, then the newly entered value will either be successfully written to the tag, OR, sometimes, the old value will remain, which means the new value was not written to the tag successfully.
  3. Sometimes it is even worse, when I write new value on the gateway designer, the newly entered value didn't even appear to be entered.
  4. To evaluate the interference from the Modbus TCP connection, I created a memory tag in the edge designer, I can change the value of this tag from the edge designer but when I change the value from the gateway, sometime I can change the value, sometimes I cannot.
  5. While testing the above scenarios, to ensure the MQTT connection between the gateway and the edge unit is valid, I set up a heartbeat signal increasing every one second, I can confirm from both end that this value was updated from both end almost at the same time, which proved that the MQTT connection is correct.
  6. When I reboot the edge unit, the issue remain the same, but when I reboot the gateway, I can start writing value from the gateway. Then after sometime, this issue appeared again.
  7. from the above testing, I can roughly conclude the issue is at the gateway side, and this issue happens whenever there's at least one modbus connection at the edge side.

But what could be the root cause and how to eliminate the issue?

Your diagram suggests Ignition is also the broker. Have you tested with a separate broker, perhaps one not running in Ignition? This will help reduce the search for the problem.

Also, have you considered posting on Cirrus Link's forum?

1 Like

After spending sometime troubleshooting, I found the following errors in the edge log.


From gateway, I wrote values to the edge tags which is connected to the modbus device tags.
But these modbus tags does not allow write function when the device is in certain modes.
With the errors starts accumulating in the edge, it stopped received write requests from the gateway.

After adding condition to the written command, basically don't write if the device is not in write enable mode, this issue is then resolved.

1 Like