Backfilling Data in Groov Epic

Hello Team,

I am Using Groov Epic demo kit provided by opto22, and my application is to send the data on MQTT server(that was already done successfully).

Now my further application is explain as below.
when i lost the net connectivity at that time obviously node-red cant able to send that data on MQTT server, but is there any possibility that i can store that data into epic controller or node-red’s any utility or any other way to retrieve that data ??

Kindly suggest any possibilities.

Ignition Edge does this automatically with MQTT/Sparkplug.
Are you using Induction Automations Ignition Enterprise edition at your head office?

I am using ignition edge trial version.
Do you have any documents?

You need to be using Ignition on both sides.
Edge on the EPIC and Ignition Enterprise at the head office.
Is that how you have things setup?

Look at the second diagram here;
https://docs.inductiveautomation.com/display/DOC79/Ignition+Edge
It shows the store and forward function you describe.

Edit. The documentation is here;
https://docs.inductiveautomation.com/display/DOC79/Store+and+Forward

Thanks for Providing documents.

But what i understand from this is data will be stored in the database of ignition edge and same will pulled by igntion edge,
is there any possibilities to same thing is achieved by run ignition edge in epic only??
Any other way to achieve this application?
DNP3 protocol is supported in epic?

Here is a list of drivers that work with Ignition.
https://docs.inductiveautomation.com/display/DOC79/Drivers

Thanks Beno…

If you find anything else for this topic then let me know.

Hi @Beno, currently I am also researching on this type of solution. Is this the only way to secure the data when the internet connection is lost. Can it also store XML format? Or only raw data receive from tag?

As I understand it there are two ways to back fill data when your connection is lost.

1. Roll your own solution.
You will need to check the connection with some sort of heart beat and when it goes down then start buffering the data (in what ever format you chose, xml, csv, txt) on the client.
Once the connection is up you will need to start sending the back filled data along with the current live data.
The server then needs to understand the difference in time stamps and what do with that data.

2. Use Ignition and tick the box.
For Ignition Edge:

Edit the connection and enable the history store setting.

For EPIC native MQTT;

Enter how many tag values you want to store in memory. This number will depend on how many tags you are scanning and how frequently you are scanning them / how often are they changing value (depends on their dead-band setting).

Lastly, enable history in Ignition for each of your tags on the server end.

That should take care of everything for you.
(That’s the power of MQTT SparkplugB)

2 Likes

Thank for the clearly instruction.

Hi Beno,

Is there a way of doing it on a RIO? I am not using Ignition Edge. I am only using the MQTT Sparkplug native protocol of the device and I don´t know how to retreive the “stored” data when the connection is up again.

If you are using RIO/EPIC to Ignition and have both setup for Sparkplug B then the RIO will back-fill for you.
As you can see from your screenshot, our native data service has it all ready to go.

@greichert will be able to offer more Ignition specific tips for using this feature.

The key to store and forward with MQTT and Sparkplug B is the use of the Primary Host ID/Topic. You set this on the subscriber that you want to be the most important. When the connection to that subscriber(via its primary host ID/Topic) is lost, the RIO/EPIC will go into store mode, when that connection is re-established it will backfill all historical data into that system.

You can set the Primary Host ID/Topic in native data services and Ignition:

As well as at the primary subscriber(Ignition in this instance):

As long as the name matches on all systems you are set.

1 Like

I will check on it. Thank you

Thank you. I am using a subscriber different to Ignition but I will check on it.