The DataRecoveryService writes current values as they occur to a block of SRAM. When a block is full, the service copies it
from SRAM to the controller’s flash memory. A station that creates rapid COV (change of value) histories may fill the SRAM
data blocks too frequently, triggering a database save possibly every couple of minutes. Ideally, such database saves to flash
memory should occur no more than once an hour.
Saving the database too frequently results in inefficient use of controller CPU time and potential flash problems. Flash memory
is designed to be written to a certain number of times. A number of variables contribute to how often the database needs to
be saved, including:
- Rate of changes that need to be persisited
- Size of the changes (histories, alarms, and setpoint changes differ in size)
- Amount of free flash memory space
Two examples use only the number of changes that occur per hour to demonstrate the need to consider the COV rate when selecting
station backup options:
- The first JACE-6E station with 176 COV histories. Each writes every 5 seconds. In addition, the station has other NRIO and BACnet components
that add to the histories. 176 COV histories changing every 5 seconds yields 126,720 changes per hour (176 * 12/min * 60 min/hr).
Automatic database saves occur every 6 minutes. This number of changes is well beyond the recommendation for a controller
using only SRAM and flash memory to backup station data.
- A second JACE-6E station has 1200 interval histories, each with a collection interval of 10 to 15 minutes. If all histories change every 10
minutes (worst case scenario) the result comes to 7,200 changes per hour (1200 * 6 changes/hr). Now compare this number of
changes to those in the first example: 126,720/7,200. In the first example, changes occur nearly 18 times more often than
in the second. Applying this ratio to the second example, an automatic database save occurs approximately every 1.5 hours
(6 minutes * 17.6 = 105 minutes), well within the acceptable range.
Applications that require frequent writes to flash memory should use a controller with a backup battery and disable the use
of internal SRAM/flash memory.