Class-based recipes allow a single recipe to be executed against all Units that meet the required functionalities. Phases required to perform inter-unit coordination can be used to transfer information from any source unit to any destination unit utilizing Phase linking functionality. Based on the equipment arbitration requirements these coordination Phases can be shared among multiple units or can be created so each unit has its own instance of the required Phase.
A philosophical approach to an ISA-88 solution is that Phases should not depend on other Phases to perform their tasks unless they are involved in the same activity.
The basis for this design takes advantage of a product functionality called “Link Groups”. Link Groups are defined during the recipe definition and indicate what set of Phases are intended to be used in conjunction.
“Phase Requests” are Phase commands that can be user to communicate Phases with the batch service. These requests can be used to send information between Phases, to request and release resources, to upload report values on command, and many other Phase functionalities.
Some of the functional requirements of this coordination, consist of providing enough information to know what units are involved in the transfer, what equipment needs to be acquired, and in some cases, when multiple paths can be used to perform the transfer, determine the available paths, and select a valid one based on predefine resource arbitration rules.
To better understand the usability of this product coordination functionality, let’s look at several coordination scenarios:
Creating a recipe pause point in one unit until another unit reaches a specified step can be done with a basic Standard Synchronize Phase and it is typically assigned to each unit. The following diagram is of an ISA-88 Procedure that contains Two Unit Procedures, and each one of them contains an operation. In each of these operations we see a Synchronize Phase (Sync). The recipe reaching this phase first will have to wait until a specific phase in another operation reaches its Sync step. This functionality is of high value to the recipe authors since they can now control when the steps in one unit should run based on the steps of another unit. The link group line between these Sync phases is established by the recipe author and clearly define what phases work in a group, many of these can exist in each operation. In this example, one of the Phases is waiting to receive a message and the other will send a message and wait until a receiver is present. Once this link is established the Phase logic can be set to complete, the set of Phases complete, and the recipe now move on to the next steps. In this example, the recipe in Unit A is dependent on the recipe of Unit B. Only if unit B temperature is > xx degrees then we can start adding catalyst to unit A.The following diagram is representative of a recipe Procedure that contains two Unit-Procedures, each of them containing one Operation and each one containing a transfer phase that is used to coordinate the transfer of material between Unit_1 and Unit_2.
Coordination between Units and transfer of information can be achieved using product functionality. Link groups is a capability that allows Phases to communicate with each other. Class-based recipes will allow possible messaging and synchronization to be built. This functionality eliminates the need for custom code often used to track what batches are running in each unit, and then match the set of units based on their batch ID to determine unit partners.
Bottom line…take advantage of product functionality to minimize custom code and reduce overall programming effort!Leaders relevant to this article: