# Recover historical data from remotely connected devices

**URL:** <https://forum.inductiveautomation.com/t/recover-historical-data-from-remotely-connected-devices/64520>\
**Category:** Ignition\
**Created:** [September 27, 2022, 10:55am UTC](https://forum.inductiveautomation.com/t/recover-historical-data-from-remotely-connected-devices/64520 "2022-09-27T10:55:09Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Michal\_Goralczyk](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/michal_goralczyk/32/55564_2.png) [@Michal\_Goralczyk](https://forum.inductiveautomation.com/u/Michal_Goralczyk)\
**Post date:** [September 27, 2022, 10:55am UTC](https://forum.inductiveautomation.com/t/recover-historical-data-from-remotely-connected-devices/64520/1 "2022-09-27T10:55:09Z")

</div>

Hello!

I would like to ask what are the possibilities of recovering historical data from devices with which Ignition communicates remotely.

I am referring to the example of photovoltaic farms. There are devices there that operate on different communication protocols. Access to these devices is remote. Sometimes the connection to these devices is temporarily lost for various reasons (network operator, SIM failure).

When communication is lost, information about the operating parameters of the power plant is lost. This causes problems with the settlement of KPIs for this period and adversely affects summary indicators.

The idea is to cache information for the time of loss of communication and recover it when communication returns. We have devices such as PLCs available on site.

We cannot install an ignition edge instance on all sites so we are looking for any other ideas and suggestions.

Best regards  
MG

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [September 27, 2022, 12:33pm UTC](https://forum.inductiveautomation.com/t/recover-historical-data-from-remotely-connected-devices/64520/2 "2022-09-27T12:33:19Z")

</div>

If you have a modern PLC with structured memory, it is relatively easy to code a ring buffer (array of structures) to buffer your data. Each element would include a timestamp (easy to get that in 64-bits with Logix) for Ignition to use to backfill your history after comms are restored.

The only downside to this approach is that it isn’t practical to turn on and off–you would use it all the time to record history. It would simply keep up under normal conditions. This approach works best with wide tables and a scripted handshake.

---

<div class="post-metadata">

**Author:** ![Michal\_Goralczyk](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/michal_goralczyk/32/55564_2.png) [@Michal\_Goralczyk](https://forum.inductiveautomation.com/u/Michal_Goralczyk)\
**Post date:** [September 27, 2022, 2:38pm UTC](https://forum.inductiveautomation.com/t/recover-historical-data-from-remotely-connected-devices/64520/3 "2022-09-27T14:38:35Z")

</div>

Sounds interesting, thanks for your answer. Actually I’m using something else in between - KEPServerEX, is it not a problem?

Do you have any source where I could read more about this Ignition method? We are using a very popular PLC based in Codesys with great capabilities.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [September 27, 2022, 2:58pm UTC](https://forum.inductiveautomation.com/t/recover-historical-data-from-remotely-connected-devices/64520/4 "2022-09-27T14:58:05Z")

</div>

> [@Michal\_Goralczyk](#):
>
> I’m using something else in between

The technique is generic, and should work regardless of OPC Server used. It doesn't depend on any particular OPC features. It does require custom code in the PLC to advance the ring buffer as Ignition consumes from it. This topic adds a bit more detail:

> [@Fast Data to SQL DB with SQL Bridge Module?](https://forum.inductiveautomation.com/t/fast-data-to-sql-db-with-sql-bridge-module/47597):
>
> We are using Ignition 8.1 as the SCADA to communicate with a TwinCAT runtime and SQL DB. The feature I am trying to build: An Ignition screen that allows users to select a number of variables to begin recording at a 10ms rate. I plan on buffering all signals into a 2D array in the PLC that will have a cumulative record of 1 sec worth of data. I can constrain the signals the user can choose to record by the Ignition interface, but I will not know the exact variables/data types to be recorded u…
