MQTT Tag value changing after restart


We have an Ignition Server (IS) at our office running a MQTT engine connected to an Ignition Edge (IE) device on site running a MQTT transmitter .

This edge device on site is then connected to a modbus TCP device. So I have created a UDT on IE that consist of a bunch of OPC tags. Some of them are setpoints that I am typing in on the IS side (since MQTT creates a memory tag on the MQTT engine side). As soon as I power cycle the site (Ignition Edge device and Modbus TCP device) all my setpoints revert to 0. I think it might be that on startup, the modbus device reverts to all 0’s and that gets sent up to IS replacing my setpoints, is there a way around this? I have made some tags read only on the IE side which only allows values to then change on IE side and not IS side. But can it be done the other way around (thus engine → transmitter)?


I should be more clear, IE MQTT UDTs are OPC tags that point to modbus registers (setup in GW).

If a setpoint value of 0 is not valid for your setpoints and you never want the Engine side setpoint tag to be set to 0 as a result of a powercycle on the edge, I would consider using a tag change script on the Engine tag to reset the setpoint to the proper value.

This assumes that the setpoint value can be statically defined in the tag change script. Create the script on the Engine side setpoint tag and if the incoming value is 0, write the correct setpoint value to that same Engine tag. You may also want to inspect the incoming tag quality before doing the write. This will basically reset the edge side setpoint to the desired value by immediately overwriting the 0 on the Engine side and propagating this new setpoint value to the edge.

Hi Nathan

Apologies for the late reply. Just wanted to add for completion that writing a tag change script solved the problem for me.

Great! Thanks for letting me know. Reach out if you run into anything else.