MESAInternational / B2MML-BatchML

B2MML is an XML implementation of the ANSI/ISA-95, Enterprise-Control System Integration, family of standards (ISA-95), known internationally as IEC/ISO 62264. B2MML consists of a set of XML schemas written using the World Wide Web Consortium's XML Schema language (XSD) that implement the data models in the ISA-95 standard.
Other
92 stars 45 forks source link

General Recipe parameters missing information defined in ISA-88 Part 2 #70

Closed Dennis-Brandl closed 1 year ago

Dennis-Brandl commented 3 years ago

The documentation in ISA-88 Part 3 on Process Parameters (6.5.21) says to see Part 2 Clause 4.3.2, which then points to Part 2 Clause 4.3.6.
The following is missing in the BatchML-GeneralRecipe.xsd mapping.

  1. The Parameter type examples in Part 2 include Constant, Reference, Equation. However, BatchML-GeneralRecipe.xsd only has Input, Output, Optional, and Required. This list needs to be extended to include expressions and references to other parameters. For example, the parameter for a process step could be the value from an parent process operation.

  2. [From Mike Hogan - Riffyn] There does not seem to be a formal mechanism to represent a General Recipe parameter as an equation. One possible solution to this might be to move DataInterpretationType to B2MML-Common, and then add an optional DataInterpretation member to ValueType. Or it might be cleaner to have the "interpretation" hint a little closer to the ProcessElementParameter class itself.

  3. [From Mike Hogan - Riffyn] There might be some benefit in adding an enum to identify the "role" that various process parameters play. The thinking here is that Process Development parameters often get handed over as a mix of:

    • Fixed CPP values (say, conductivity and temperature rules for a clean in place operation)
    • Site and equipment-specific scaling factors (say, size of a vessel to be cleaned)
    • Terms that are ultimately functions of these fixed and scaling terms (say, volume of caustic solution to be prepared for a CIP operation)
  4. Part 2 Clause 4.3.6 also shows a "References" link from one parameter to another, this is missing in BatchML-GeneralRecipe.xsd.

Proposed solutions are to:

  1. Include additional types in ProcessElementParameterType1Type for constants, expressions, and simple references. and make it MaxOccurs=Unbounded.

  2. Add a ReferencedParameterID element to ProcessElementParameterType which contains an ID of a parameter at the same element, or to a parent using the "../" notation to pick up a reference to the parent process process element.

  3. Define the syntax rules for expressions as simple expressions "+-/*<>=" and allow termsin the expression to be constants and references to other parameters (see above).

  4. Make the ReferencedParameterID as MaxOccurs=Unbounded

  5. In the Parameter expression allow for a predefined terms which will allow for scaling expressions based on various batch and equipment sizes.

Dennis-Brandl commented 1 year ago

Added new enumerations to ProcessElementParameterType1Type. This includes minimal example of what an Expression could be.

** ** ** ** Changes the ProcessElementParameterType to maxOccurs="unbounded". This requires that the parameter type list and parameter value list be consistent. This is not the best solution, but it does preserve backward compatibility.
Dennis-Brandl commented 1 year ago

Updated with the latest merge.