How to read data from history server to delta control module?

I need to use the past data from the history in the control module on the controller, how to read it from the history collection server?


  • You cannot read data directly from the history collection server into a control module. Depending on your historian setup, you could use PI datalink or DeltaV Reporter and use OPC DA to write values to control modules. Alternatively, if you don't need much data or need well defined data for a smaller amount of specific tags, you could use function blocks and logic config in a control module to collect and store the historical data you need in a control module.
  • Kyle Walker pretty much nailed it. The DeltaV Continuous Historian can be accessed with Report Writer, which uses Excel AddIns that use API calls to extract History data. Similarly, PI Datalink Excel addin can pull data from PI archives. However, the Excel Add In for real time data access in DeltaV does not allow automatic writes to control modules. The writes are only allowed interactively. I'm sure there are some out there that have found a way to write from Excel, but it is not standard functionality and not supported from the factory through the Excel AddIn.

    Since we don't really know what you are trying to do, or the history data requirements, I don't know if there is a good solution that bypasses the history server with a controller-based solution. But using DeltaV Reporter or PI Datalink with some kind of OPC DA write capability might be your best bet. depends on how frequently you need data to be written.

    I've used this to push KPI data derived from process historical and real time data back down to a landing module for display in DeltaV HMI. Note that DeltaV Continuous Historian allows for one Free HDA client connection. But that is a significant investment just to move a bit of data from history back to controllers. It would also require some scripting and implementation services from data integration experts. Sounds expensive.

    But what is your control problem and what data are you in need of. You could create a module to store a PV into a series of Float arrays to create FIFO and be able to pull a value or series of values from the past into an algorithm. Or a simple DT block to expose a value from x time in the past for a comparison. Maybe somebody has already solved your control problem without the use of History data.

    Andre Dicaire