Edge Panel MQTT Store&Forward missing value changes

Hi every body.
I'm using an EDGE Panel to send TAGs values to a Central Ignition Gateway via MQTT.
And I have noticed a strange behavior where value changes are lost during a loss of MQTT communication.
The EDGE Panel is reading data via Modbus at 1min scan rate, when the MQTT communication between the EDGE and the broker (in the central Ignition) is lost, if there is any change in the value of a TAG during the communication outage, this It is not updated in the Ignition Central when the communication is reestablished but the history is reestablished correctly, leaving the current value with the value not updated but the historical chart correctly.

imagen

Then, if the TAG value changes while the MQTT communication is established, the current value in the Central Ignition is updated correctly.

Any help with this? I'm missing any configuration?

Thanks

Did you enable disk backed store under History settings in the MQTT transmission section?

Check your timeout settings on MQTT. The shorter these timeouts are, the less dataloss you'll have, but at the risk of timing out more often than what you want. Are you using a primary host ID on both Transmitter and Engine to properly detect all comm losses?

imagen

I think yes

Hi Michael, thanks for the answer.
I'm usin 5s Keep Alive and 1s reconnect dalay in my TO settings, Am I missing something else?

Yes, I'm using a primary host ID in both modules, and is detecting de comm loss. In fact, when the comm is up again the historical data is forwarded correctly.
Only the TAG value change that occurs in the EDGE while the communication is down is lost.
This is very worrying, since if, for example, a setpoint change occurs in the PLC during the MQTT communication drop, that value is never updated in the Ignition Central until that setpoint is changed again (perhaps in days).

Under your transmitter, is In Order History selected/checked? I have it selected on my edge devices.

And then in transmitter settings, did you set this to the disk backed option?

image

What version of the transmitter are you using. It looks like in the release notes there's been some fixes in v4.0.19 and some in a later version also that could cause this issue depending on configuration.

https://docs.chariot.io/display/CLD80/Ignition+8.x+Compatible+Release+Notes

In particular this:

  • Fixed cache update code that could result in BIRTH messages not publishing the most recent/valid value

@Matrix_Engineering I don't think their store/forward would work at all if that wasn't selected. I think their main issue is that the live value isn't coming in once comms are re-established.

1 Like

It only gives me the Default In-Memory Store option, not disk-backed

imagen

4.0.21 version

imagen

That works fine. You have to create your own disk backed memory stores if you want them.

Yes
imagen

Your tag pacing is set to 60000 also? I think your next step would be to reach out to CirrusLink support and see what they can do to help figure this out...or if you've discovered a bug.

Is setting to 1000 (the default)

Yeah, reach out to CirrusLink then. So you're only polling Modbus at 60sec but the pacing period means it should push that value change no longer than 1 second after it changes.

Thanks Michael, I will do it.

While we were talking, I updated the 3 MQTT modules to the latest version 4.0.22, but the problem persists.

I'll let you know what the people at Cirrus Link respond to.

Thank you very much for taking the time to analyze my problem and respond to me.

Regards, Andrew