Wednesday, 21 April 2010

What are all these Recipe Defer Functions for?

If you are programming a Batch Manager, such as DeltaV batch or RSBatch, you will find yourself having to define the Defer Levels of Recipe parameters.
What is all this about?
Well, you can see some explanation on the DeltaV Books Online web site. And by the way Emerson, thank you for that excellent resource. And the explanation of the paints project shows well how to build a recipe in DeltaV.  
The basic principle is that the value of a recipe formula parameter used in a phase can be set by a higher level, so that you can ultimately create a master recipe formula containing the settings and define a path through the procedural hierarchy that sets the required value in the phase and hence in the equipment control.
Now, there may be many, perhaps hundreds or more, parameters that are used in the entire collection of phases that are run for a batch, but the actual master recipe formula need only have a small portion of them.
A design rule might be to only defer parameters that have to change for different recipes.

Deferring a Recipe to the Recipe Procedure
Deferring a Recipe to the Unit Procedure

The actual process of defining the paths looks rather tedious, because (as I understand)  you have to go through each level of the hierarchy, bottom up, deciding whether a parameter must be deferred, and furthermore if a parameter has to pass though multiple levels, then each level needs to contain the parameter - shown as Pass Thru parameters in the above diagrams. I can't help thinking that there must be a better way.
ControlDraw by the way allows you to link the top level parameters to the bottom level ones and then automatically work out all these Pass Thru parameters. Whether DeltaV would allow you to import these I do not know.