Implementation of a Data Pump with Ignition by Inductive Automation

There are many tools on the market for historizing process data. These tools typically treat each point of data individually when historizing, which works great for trend screens and instrumentation reporting. However, it is often desirable to log a “set” or “group” of data together, associating many data points with a single event. This use case is particularly common with batching operations, where detailed records must be kept. This can be accomplished in many different ways. One such approach, that of a so-called “data pump,” is described below.

Solution Overview

One of our solutions to this challenge is to create and log a “payload” of data each time an operation is completed on a piece of equipment. For example, consider a bulk material addition into a mix tank. This operation contains several pieces of relevant information that can be historized, such as:

  • Start Time
  • End Time
  • Unit (Ex: Mix Tank 102)
  • Batch ID
  • Event Description: (Ex: “Sucrose Addition”)
  • End Condition (Completed Naturally or Manually Aborted)
  • Setpoint Amount (Requested Quantity)
  • Actual Amount (Delivered Quantity)
  • Error % ( [Actual – Setpoint] / [Setpoint] x 100 )
  • Pump Speed

In order to capture this information, PLC logic is built into each operation to collect the pertinent data. At the completion of the operation, this data is then consolidated into a single record object, typically a User Defined Data Type, in the PLC. Then this record is placed into a queue object on a “First In, First Out” basis. Elsewhere in the control system (external to the PLC), this queue is monitored for new records. As new records appear, the control system reads the appropriate data from the front of the queue, logs it to a SQL database table, and handshakes with the PLC to indicate that the record has been successfully processed.

Once the handshake is received at the PLC level, the queue is then indexed to discard the previous record and move the next record forward for processing. No records are removed from the queue until the control system acknowledges successful processing of that record. In this architecture, queued data is essentially guaranteed to be logged. Even if the mechanism processing the queue fails, the PLC (and more importantly, the automated process) can continue to run as normal. In this scenario, the queue may accumulate a backlog of unprocessed records, but once the processing mechanism is brought back online they can be quickly processed. Providing a large enough queue object is important because it gives the data pump a buffer. This allows the control system to weather any interruption of communications that might occur between the PLC and the mechanism that processes the records. (more…)

Read More | Posted In: Blogs, Inductive Automation, PLCs