Here is the ignition structure.
And here's the issue I encountered.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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?