Dynamic Perspective Objects with Sepasoft’s Batch Module
One of the most exciting things about Sepasoft’s Batch and Procedure module is that it enables tight integration between the process cell (as it is functionally defined) and the graphical interface (how it is presented to the user). By using the various tools in the Ignition toolbox (creative scripting, querying, and binding), it is possible to create dynamic views that represent the ISA-88 objects of a process cell. As the process cell definition changes (new units, new phases, etc) these dynamic objects automatically update as needed. This allows for less development time, a consistent user experience, and a lower maintenance control system.
While working with Sepasoft to Alpha and Beta test the Batch and Procedure module, ECS began development of some basic proof of concept “objects” in Ignition Perspective. These objects were designed to meet the common needs of a SCADA system of an ISA-88 batch process, but also to leverage the power and flexibility of Ignition. This means combining the obvious (such as Sepasoft’s MES Tag provider UDTs) with the less obvious (gateway scripting, dynamic perspective views, flex repeaters, and active batch info).
Below are some examples of ways ECS has combined the power of Ignition’s Perspective and Sepasoft’s Batch and Procedure module to create dynamic and powerful views for projects using these modules.
Phase List and Status
The view below implements a Flex Repeater to create a dynamic list of Phase instances that are available within a specified Unit instance. As new phases are added, removed, or modified, this repeater automatically updates as needed without requiring an automation engineer to modify a dataset or view.
The background color of each phase changes depending on the Phase state (gray for IDLE, green for RUNNING, yellow for HELD, red for ABORTED, etc.) and each Phase can be clicked on to access a popup window with additional information. For this proof of concept, ECS included only surface-level information such as the Step Index, start/end times, and runtime.
A more complete implementation of this popup would include information specific to the phase, such as:
- A list of the control modules that the phase must acquire or interlock in order to run.
- A list of parameters and reports for the phase.
- Controls for taking operator control of and executing the phase manually.
- Historical information about the last several times this phase was executed.
- Alarms, Warnings, or Informational alerts related to the phase execution.
Unit Message Area
It is almost always desirable for operators to be able to see “what’s going on” in an active batch without having to return to the Sequential Function Chart (SFC) view. A good way to accomplish this is by using a “User Message” phase throughout the recipe that effectively narrates the execution of the recipe.
In Sepasoft’s Batch and Procedure Module, the messages for a batch are tracked in a Message List component and can be scrolled through. This list can display both current and past messages. Depending on how it is implemented into the Perspective application, it can sometimes be overwhelming for an operator (information fatigue).
In order to leverage the messages in a more ergonomic way, ECS created an object that accepts a Unit alias and performs a lookup to determine the latest (currently active) User Message for that unit. That message is then displayed in this message area, which can be resized and placed wherever an operator would need to see the current status of a Unit. For ECS, this typically means any screen where the Unit is represented (unit-specific screens, unit class screens, process overview screens showing all units, etc).
User Prompts and Alert Navigation
The same object used for the “Unit Message” doubles as the operator alert when a message requires acknowledgment before a recipe will advance to the next step. If the active message on a unit requires acknowledgment, we pulse the background of the prompt area between gray and magenta (a color ECS has historically used for what we call the “Alert Navigator”)
In addition to presenting the user with the latest message (and flagging their attention if there is a prompt needing acknowledgment), this object also allows the user to acknowledge the prompt without having to switch to a “Message List” object in order to find the message requiring acknowledgment.
The primary benefit of this implementation is that it allows the operator to focus on the Units in their area of responsibility and simply follow the Alert Navigator. This effectively separates the prompts from the full message list, which can become crowded with messages that either 1) don’t require acknowledgment or 2) don’t apply to the unit the operator is concerned with.
ECS also developed some basic proof-of-concept objects for Unit Instances. These objects accept a unit alias as a parameter and display whatever process-related information is deemed important for that Unit. For example, the Premix Tank below (TK-101) shows the level of a vessel as well as the state/speed of an agitator VFD. These stripped-down facsimiles of units are ideal for status/overview screens but can also be worked into higher detail “Piping and Instrumentation Diagram” style screens.
Similar to the Message/Prompt object, the Unit Info box displays batch-specific information to the user. This allows the user to quickly see what recipe (and Batch ID) is active on the unit, as well as when the Unit Procedure was started/completed. This information can be condensed and displayed alongside any representations of the Unit Instance throughout the application but tends to be well suited for “Unit Popups.”
Traditionally, most HMI applications tend to represent their ISA-88 Units in one of a few ways:
- All instances of a particular Unit Class on a single display (Ex: Premix Tanks 101, 102, and 103)
- Each instance of a particular Unit Class on its own display (Ex: Premix Tank 101 with piping and instrumentation detail)
- All instances of all Unit Classes on a single “overview” display. (Ex, Premix Tanks 101-103, Reactors 201-202, and Final Mix Tanks 301-303)
With Sepasoft’s Batch and Procedure module, it becomes much easier to create dynamic screens that are “batch specific.” That is, displays can be developed that include placeholders for each Unit Class needed for a specific recipe. Then, once the batch is started, that single screen can display everything about those units that an operator might need to do their job. For example, consider a batch that requires one “PREMIX” Unit, one “REACTOR” Unit, and one “FINAL MIX” Unit.
Rather than requiring an operator to move back and forth between three screens (one for each unit class), a single screen can be created that uses a dynamic binding for each unit class. The operator can simply select the batch they are running from a dropdown list, allowing Ignition to lookup the unit instances that are bound to that batch. The display then knows to show the operator all the info they need for the units in that specific batch. In the above example, this is PREMIX “TK-101”, REACTOR “TK-201”, and FINAL MIX “TK-301.” Here they can quickly see that the only unit requiring their attention at the moment is the PREMIX Tank TK-101 (magenta).
With clever usage of Flex Repeaters, it is also possible to create a dynamic display that shows as many unit instances as necessary for the active batch. Have a recipe with 12 units? No problem! This display would translate that list of 12 units into a scrollable display with information on all 12.
Though these objects are relatively plain proofs of concept, they illustrate the significant power in co-locating the batch engine with the visualization platform. These objects only scratch the surface of what is possible with Ignition and Sepasoft’s Batch and Procedure module.