The ISA S88 standard is a guideline for batch control. It focuses on batch processes and their control. The concepts and terminology defined within make the design and operation of batch plants much easier. Below I demonstrate the creation of such a procedure in DeltaV with a goal of introducing the key concepts and terminology along the way.
What is a batch process?
Typically, manufacturing processes can be defined in 3 distinct categories: Discrete processes, continuous processes, and batch processes.
Discrete processes involve parts, components, and sub-assemblies to produce finished products. Where each item involved has its own unique identity. A good example of a discrete process would be automobile assembly.
Continuous processes involve a continuous flow of material through various processing equipment. Once operating in a steady state, the goal is to produce a consistent quality product until the end of the process life cycle. Think of gasoline as a prime example of a continuous process.
Batch processes are a mixture of the two. They are defined by the ISA S88 standard as a 'Process that leads to the production of finite quantities of material by subjecting quantities of input materials to an ordered set of processing activities over a finite period of time using one or more pieces of equipment.'
The Process Model
A batch process should follow a recipe procedure. The procedure outlines the control hierarchy. It consists of a group of unit procedures.
An Unit procedure is a set of operations carried out on a single unit. The example of a unit used in this article is a tank which is filled with liquid.
An operation is a set of phases which are carried to completion within a single unit. An example of an operation would be fill the tank and empty the tank. Which could contain multiple phases like add ingredient A&B&C, Mix, Heat up, cool down, empty and so on.
Finally, a phase, the smallest element of procedural control, performs an independent task like adding ingredients or simple control module functions. An example of a phase would be heating a liquid to boiling point and keeping it there for a set amount of time.
The Physical Model
The physical model is a hierarchy of different levels. Lower levels are combined to form higher levels. Each level in the S88 physical model either may of must contain on or more sub levels.
Enterprise: Is a company. S88 states that corporate, divisional or business decisions are made at the enterprise level.
Site: Is the plant itself.
Area: Is the section of the site in which the batch is contained during the procedure. Like a clean room for example.
Process Cell: Contains all of the equipment required to make batches. Like different stations.
Unit: The unit is a collection of equipment where a piece of equipment must run a recipe in order to operate. Like the tank below in this article.
Equipment Module: Runs procedural logic, connects to equipment via control modules and can contain other equipment and control modules.
Control Module: Runs basic control like driving something to a state, connects directly to equipment, can contain other control modules.
Creating a Procedure to ISA-S88 standards in DeltaV:
Control Module Class:
In DeltaV explorer, under library\Advanced definitions\control module class\ general create a new module class and call it VALVE_CM. Open it in control studio and place a digital output block with a Boolean input parameter and a Boolean output parameter name signal_in and singal_out respectively.
Create a second control module for LEVEL_CM with a counter block, two input parameters (INLET & OUTLET), and a floating-point output parameter called LEVEL. This will tell us how full the tank will be.
Equipment Module Class:
Now we group together our control modules to form an equipment module called TANK_EM. In DeltaV explorer, under library\Advanced definitions\equipment module class\ general create a new module class and call it TANK_EM.
Drag VALVE_CM there twice and LEVEL_CM there once. Open TANK_EM in control studio and connect the blocks as shown.
Note that we can create this communication because we have I/O parameters implemented in control modules.
Under library\Advanced definitions\control module class\ general create a new Unit class and call it TANK_UC. Drag TANK_EM to TANK_UC because in this case our unit only consists of a tank with an input and output valves. If there were other equipment / control modules they would be dragged here now at this stage.
At this stage you then create aliases for your operations which your phases may reference. You do so by right clicking TANK_UC and selecting new alias.
Here we create the phase which preforms some sort of operation, opening and closing a valve after 5 seconds in this example. Under library\Advanced definitions\Phase class \ general create 2 new phase classes and call them LAB_DUMP and LAB_FILL.
Open LAB_DUMP in control studio and double click the Running block.
Inside here you will see a step and a termination. Select the step and add an assignment. Assign the alias OUTLET a value of 1 at a time of 0 seconds (On block activation).Add a second assignment to the OUTLET alias of a value of 0 after 5 seconds. This closes the valve after 5 seconds.
Next assign the transition condition “'S1/TIME'>5 AND '//#OUTLET#' = 0”. This waits for these conditions to be true for the phase to terminate. It asks has S1 been active for 5 seconds AND has the alias OUTLET been reset to 0.
LAB_FILL phase follows a similar procedure.
Add both of these phases to TANK_UC.
Process Cell Class:
Under library\Advanced definitions\Process Cell class \ general create a new process cell class and name it. I named mine PCELLCLS1EF.
Under System Configuration\Control strategies: create a new area and drag your process cell to it. Then drag your unit class to your process cell.
Here is where you link up your aliases for equipment to the actual IO. Open the TANK_UC and browse to the aliases. Select an alias then select properties. Here you brose to select the paths.
For INLET alias browse to “VALVE_CM_11/SIGNAL_IN”
For OUTLET alias browse to “VALVE_CM_21/SIGNAL_IN”
Tank_em_1 is auto assigned.
Enable the batch executive under System Configuration \ Physical Network \ Batch Executive. Right click it and select properties and check the Enabled box.
Assign your area to the batch executive.
Assign your area to the Alarms and Events. Found under System Configuration \ Physical Network \ Alarms and Events.
Assign TANK_UC and all associated modules to the controller.
Finally, enable the phases by right clicking on them within your area, selecting properties, and changing “Phase type” to “Controller”.
Create a new Unit Procedure.
Create two operations LABEF_OP_FILL and LABEF_OP_DUMP.
Right click your fill operation and open in control studio.
Add a new step and browse to the lab_fill phase and when prompted select the TANK_UC which it belongs to. Then add a termination and select the default transition condition.
Do the same for the dump operation.
Now open the unit procedure in control studio. Add a step which references the fill operating procedure followed by a default transition. Then add a step for your dump operating procedure followed by a default state termination.
Assign your Unit Procedure to the batch executive by right clicking on it and selecting “Assign to Batch Executive”. Download.
Batch Operator Interface:
Open the batch Application manager. Click “Start”. Wait until prompted that The deltaV Batch Executive is available. Then Click “Verify Phases”.
Open the batch operator interface and select your local node.
Select the yellow cylinder with a plus on it to acquire a recipe. Select your recipe.
Click the green play button to begin your process.
Click this button to view your recipe in action.
On the left you can see your Unit procedure broken into operating procedures which have their associated phases within. On the right you can see which step of the unit procedure is currently running and you can open teach operating procedure to see which phase is currently running.
There will be further, more detailed, articles on this topic in the near future. Thank you for reading through this article, and if you have any further questions please feel free to reach out to me at: