An application was required to monitor and control product movements on a refinery tank farm.
The application allows the definition and planning of lineups (a lineup being a set of oil movements from a set of source to a set of destinations via a mesh of pipework, valves and pumps). Lineups can be planned, queued for execution and re-ordered prior to execution, replacing and extending a long-standing paper-based workflow.
A feature of the movement-planning interface is the interactive trend that allows salient features to be pinpointed by dragging hairlines on trend. This is a great improvement over the traditional date/time-picker controls.
Whilst a movement is underway the tank levels, flow rates, valve states and pump operations are captured in a PI Historian and monitored via web-based trends in the control room. On completion, aggregate and summary data are held in Oracle for bulk analysis and optimization by other parts of the enterprise.
External production-planning systems can also generate lineups in the system by simply writing to the relevant Oracle tables. A report-by-exception mechanism picks up these externally-generated movements and merges them into the control room movement screens within milliseconds.
At a technical level, the application was implemented using VS2008 over .NET 2.0 using Oracle Data Access Components (ODAC). The GUI was structured using the MVC pattern for simplicity and ease of maintenance.
The application replaced a paper-based oil-movement tracking system. Comment from the operators during commissioning was "We've been waiting 25 years for a system like this!"