Figure 29 provides an overview of the ISA-95 Material handling information model

image032.png

Figure 29 - Material Information Abstract Illustration

Material handling includes the definition of a class of material; this class can include material definitions that further define what the material is. These classes of materials are applied to groupings of the actual materials (lots). In many cases these groupings are further broken down into sub-groupings (sub-lots).

Figure 23 illustrates the material model which consists of material lots, material sub-lots, material classes, material definitions, and material test specifications.

Typically a class of materials is created and further subtyped into MaterialDefinitionType. These MaterialDefinitionTypes are usually vendor specific versions of the MaterialClassType. From these MaterialDefinitionTypes instances of MaterialLotType or subtypes of MaterialLotType are dynamically created. These instances of a MaterialLotType are maintained in the system for some period of time and then they are removed. For example, a technician may scan a barcode on a just delivered pallet of chemicals; this would cause an instance of the MaterialLotType to be created. This instance of a MaterialLotType may be composed of instances of MaterialSublotType (individual drums of that make up the pallet). When the last drum of chemical used up and all products that were created using the chemicals have been delivered, the system may delete the instance of the MaterialLotType that had automatically been created. In some cases sub types of MaterialLotType may be created, allowing for easier dynamic creation of an instance of a MaterialLotType that is assembled from specific MaterialSublotType(s)

A MaterialDefinitionType defines a specific type of material from a specific supplier. This corresponds to an entry in a corporate Material Master database. For example, it may be stainless steel wire from supplier Ajax Steel, with certain properties, such as hardness and carbon content. A MaterialClassType is a specific type of material without specifying the source of the material. For example, it may be stainless steel wire, with a range of hardness and range of carbon content. The MaterialClassType is used when you don’t care where the material comes from, such as “use any old stainless steel wire”. The MaterialDefinitionType is used when you do care where the material comes from, such as “Ajax Steel stainless steel wire”. Both types are often used in data exchanges.

In many systems the actual instances of MaterialLotType may exist in a database and be referenced by the OPC UA Server (i.e. they may not exist in memory in the OPC UA Server, but the Server would know how to access them and know what instances are available). If a client needs to modify an instance of a MaterialLotType (i.e. change the quantity or some other setting), the Server would handle the update to the underlining database.

image033.png

Figure 30 - Material Information Model

The MaterialTestResultType is a concrete VariableType that can be used directly. It is a subtype of ISA95TestResultType defined in 7.5.4.This VariableType indicates the results from executing an instance of a MaterialTestSpecificationType for a specific MaterialLotType.

Table 70 – MaterialTestResultType definition

Attribute

Value

BrowseName

MaterialTestResultType

IsAbstract

False

ValueRank

0 (OneOrMoreDimensions)

DataType

Structure

Historizing

True

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the ISA95TestResultType defined in 7.5.4.

This variable type according to ISA-95 shall have prior and or multiple results available depending on the vendor specific model. To accommodate this requirement, vendors will be required to support historical storage of instances of MaterialTestResultType.

The MaterialDefinitionPropertyType is a concrete VariableType that can be used directly. It is a subtype of ISA95ClassPropertyType defined in 7.5.4.

This VariableType indicates ISA95ClassProperties for MaterialDefinitionTypes. Variables of this VariableType may be associated to an instance of a MaterialTestSpecificationType defined in 8.4.3.1.

Table 71 – MaterialDefinitionPropertyType definition

Attribute

Value

BrowseName

MaterialDefinitionPropertyType

IsAbstract

False

ValueRank

0 (OneOrMoreDimensions)

DataType

BaseDataType

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the ISA95ClassPropertyType defined in 7.5.2.

HasISA95ClassProperty

Variable

<PropertyName>

MaterialDefinitionPropertyType

OptionalPlaceholder

TestedByMaterialTest

Object

<TestSpecification>

MaterialTestSpecificationType

OptionalPlaceholder

<PropertyName> is a placeholder for possible instances of MaterialDefinitionPropertyType. These properties can have any name but shall be referenced using the HasISA95ClassProperty reference and shall be of type MaterialDefinitionPropertyType or a sub type of it

<TestSpecification> is a placeholder for any test specification that this MaterialDefinitionPropertyType conforms to. These test specifications can have any name but shall be referenced using the TestedByMaterialTest Reference and shall be of type MaterialTestSpecificationType or a sub type of it.

The MaterialClassPropertyType is a concrete VariableType that can be used directly. It is a subtype of ISA95ClassPropertyType defined in 7.5.4.

This VariableType indicates ISA95ClassProperties for MaterialClassTypes. Variables of this VariableType may be associated to an instance of a MaterialTestSpecificationType defined in 8.4.3.1

Table 72 – MaterialClassPropertyType definition

Attribute

Value

BrowseName

MaterialClassPropertyType

IsAbstract

False

ValueRank

0 (OneOrMoreDimensions)

DataType

BaseDataType

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the ISA95ClasspropertyType defined in 7.5.2.

HasISA95ClassProperty

Variable

<PropertyName>

MaterialClassPropertyType

OptionalPlaceholder

TestedByMaterialTest

Object

<TestSpecification>

MaterialTestSpecificationType

OptionalPlaceholder

<PropertyName> is a placeholder for possible instances of MaterialClassPropertyType. These properties can have any name but shall be referenced using the HasISA95ClassProperty reference and shall be of type MaterialClassPropertyType or a sub type of it

<TestSpecification> is a placeholder for any test specifications that this MaterialClassPropertyType conforms to. These test specifications can have any name but shall be referenced using the TestedByMaterialTest Reference and shall be of type MaterialTestSpecificationType or a sub type of it.

The MaterialLotPropertyType is a concrete VariableType that can be used directly. It is a subtype of ISA95PropertyType defined in7.5.3.

This VariableType indicates ISA95Properties of a MaterialLotType. A MaterialLotPropertyType may be associated to an instance of a MaterialTestSpecificationType defined in 8.4.3.1. An instance of a MaterialLotPropertyType may be tested by the execution of an instance of the MaterialTestSpecificationType.

Table 73 – MaterialLotPropertyType definition

Attribute

Value

BrowseName

MaterialLotPropertyType

IsAbstract

False

ValueRank

0 (OneOrMoreDimensions)

DataType

BaseDataType

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the ISA95PropertyType defined in 7.5.3.

HasTestResult

Variable

<TestResult>

BaseDataType

MaterialTestResultType

OptionalPlaceholder

HasISA95Property

Variable

<PropertyName>

MaterialLotPropertyType

OptionalPlaceholder

TestedBy Material

Test

Object

<TestSpecification>

MaterialTestSpecificationType

OptionalPlaceholder

<TestResult> is a placeholder for possible material test results. These test results can have any name but shall be referenced using the HasTestResult Reference and shall be of type MaterialTestResultType or a subtype of it. In addition each <TestResult> shall have a ResultsForSpecification Reference to the instance of the MaterialTestSpecificationType that is associated to the given test result record. It is recommended that the names assigned to the instance of a MaterialTestSpecificationType and the <TestResult> variable follow some naming convention, to allow operators to more easily match test results to the test specification that they are for.

<PropertyName> is a placeholder for possible instance of MaterialLotPropertyType. These properties can have any name but shall be referenced using the HasISA95Property Reference and shall be of type MaterialLotPropertyType or a sub type of it

<TestSpecification> is a placeholder for any test specification that an instance of this MaterialLotPropertyType conforms to. These test specifications can have any name but shall be referenced using the TestedByMaterialTest Reference and shall be of type MaterialTestSpecificationType or a sub type of it.

The MaterialTestSpecificationType is a concrete ObjectType that can be used directly. It is a subtype of ISA95TestSpecificationType defined in 7.6.4.

This ObjectType indicates a material test specification. A material test specification may be associated with a MaterialDefinitionType, an instance of a MaterialDefinitionPropertyType, a MaterialClassType, an instance of a MaterialClassPropertyType, an instance of a MaterialLotType, an instance of a MaterialLotPropertyType or an instance of a MaterialSublotType. This is typically used to specify a material test specification to determine a value for a property. An instance of a MaterialTestSpecificationType may test one or more of these items.

Table 74 - MaterialTestSpecificationType definition

Attribute

Value

BrowseName

MaterialTestSpecificationType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the ISA95TestSpecificationType defined in 7.6.4.

The MaterialClassType is a concrete ObjectType that can be used directly. It is a subtype of ISA95ClassType defined in 7.6.2.

This ObjectType indicates a grouping of material classes with similar characteristics for a definite purpose such as manufacturing operations definition, scheduling, capability and performance. An Object of MaterialClassType may be associated to material test specification(s).

Table 75 - MaterialClassType definition

Attribute

Value

BrowseName

MaterialClassType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the ISA95ClassType defined in 7.6.2.

HasISA95ClassProperty

Variable

<PropertyName>

BaseDataType

MaterialClassPropertyType

OptionalPlaceholder

TestedByMaterialTest

Object

<TestSpecification>

MaterialTestSpecificationType

OptionalPlaceholder

AssembledFrom Class

Object

<AssemblyClass>

MaterialClassType

OptionalPlaceholder

HasISA95Attribute

Variable

AssemblyType

BaseDataType

BaseDataVariableType

Optional

HasISA95Attribute

Variable

AssemblyRelationship

BaseDataType

BaseDataVariableType

Optional

<PropertyName> is a placeholder for instances of MaterialClassPropertyType that further define this MaterialClassType. These properties can have any name but shall be referenced using the HasISA95ClassProperty reference and shall be of type MaterialClassPropertyType or a sub type of it

<TestSpecification> is a placeholder for any test specification that this MaterialClassType conforms to. These test specifications can have any name but shall be referenced using the TestedByMaterialTest Reference and shall be of type MaterialTestSpecificationType or a subtype of it

<AssemblyClass> is a placeholder for any MaterialClassTypes that are used to compose this material. These MaterialClassTypes (assemblies) can have any name, but they shall be referenced using the AssembledFromClass reference and shall be of type MaterialClassType.

AssemblyType is flag that indicates if this assembly is a physical or logical assembly. This property is optional on a MaterialClassType, in that it is only on MaterialClassTypes that are being used as an assembly, but it is required on an assembly.

AssemblyRelationship is flag that indicates if this assembly is permanent or transient. This property is optional on a MaterialClassTypes, in that it is only on MaterialClassTypes that are being used as an assembly, but it is required on an assembly.

The MaterialDefinitionType is a concrete ObjectType that can be used directly. It is a subtype of ISA95ClassType defined in 7.6.2

This ObjectType indicates a grouping of Material with similar characteristics for a definite purpose such as manufacturing operations definition, scheduling, capability and performance. A MaterialDefinitionType may be associated to material test specification(s). MaterialDefinitionType is used to further classify a MaterialClassType, for example a MaterialClassType may be Hydrochloric Acid, a MaterialDefinitionType may be ABC Chemicals version of Hydrochloric Acid, with addition properties provided by the company.

Table 76 - MaterialDefinitionType definition

Attribute

Value

BrowseName

MaterialDefinitionType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the ISA95ClassType defined in 7.6.2.

HasISA95ClassProperty

Variable

<PropertyName>

BaseDataType

MaterialDefinitionPropertyType

OptionalPlaceholder

TestedByMaterialTest

Object

<TestSpecification>

MaterialTestSpecificationType

OptionalPlaceholder

DefinedByMaterialClass

Object

<MaterialClass>

MaterialClassType

OptionalPlaceholder

AssembledFrom Definition

Object

<AssemblyDefinition>

MaterialDefinitionType

OptionalPlaceholder

HasISA95Attribute

Variable

AssemblyType

BaseDataType

BaseDataVariableType

Optional

HasISA95Attribute

Variable

AssemblyRelationship

BaseDataType

BaseDataVariableType

Optional

<PropertyName> is a placeholder for possible instances of MaterialDefinitionPropertyType. These properties can have any name but shall be referenced using the HasISA95ClassProperty reference and shall be of type MaterialDefinitionPropertyType or a sub type of it

<TestSpecification> is a placeholder for any test specification that this MaterialDefinitionType conforms to. These test specifications can have any name but shall be referenced using the TestedByMaterialTest Reference and shall be of type MaterialTestSpecificationType or a subtype of it.

<MaterialClass> is a placeholder for any material class that defines this MaterialDefinitionType These material classes can have any name but shall be referenced using the DefinedByMaterialClass Reference and shall be MaterialClassType or a subtype of it.

<AssemblyDefinition> is a placeholder for any MaterialDefinitionTypes that are used to compose this material. These MaterialDefinitionType (assemblies) can have any name, but they shall be referenced using the AssembledFromDefinition reference and shall be subtypes of MaterialDefinitionType.

AssemblyType is flag that indicates if this assembly is a physical or logical assembly. This property is optional on a MaterialDefinitionType, in that it is only on MaterialDefinitionTypes that are being used as an assembly but it required on a MaterialDefinitionType that is an assembly.

AssemblyRelationship is flag that indicates if this assembly is permanent or transient. This property is optional on a MaterialDefinitionType, in that it is only on MaterialDefinitionTypes that are being used as an assembly but it required on a MaterialDefinitionType that is an assembly.

The MaterialLotType ObjectType is a concrete ObjectType that can be used directly. It is a subtype of ISA95ObjectType defined in7.6.3.

This ObjectType indicates a specifically identified material lot. An instance of a MaterialLotType may be tested by the execution of a material test specification.

Individual instances of this MaterialLotType would have a reference to MaterialClassType(s) that the instance of the MaterialLotType supports. By definition of the ISA-95 model, when MaterialLotType references a MaterialClassType, the addition of said reference results in the addition of all instances of MaterialClassPropertyType defined for the referenced MaterialClassType to be added to the MaterialLotType (or MaterialLotType subtype) as instances of MaterialLotPropertyType. These ISA95Properties will have all the same Attributes and Properties as the corresponding MaterialClassPropertyType instance.

This ObjectType may be further subtyped. The subtypes create some additional restrictions. Any MaterialClassType references that are added to a subtype of a MaterialLotType cannot be removed from instance of the subtype. If the MaterialLotType subtype is updated than all instance of the MaterialLotType must also be updated. For example if an additional Instance of a MaterialLotPropertyType is added to the MaterialLotType subtype than that instance of MaterialLotPropertyType must be added to all instances of the MaterialLotType subtype. This allows for creating a single MaterialLotType that is used for multiple material lot instances.

Table 77 - MaterialLotType definition

Attribute

Value

BrowseName

MaterialLotType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the ISA95ObjectType defined in 7.6.3.

HasISA95Property

Variable

<PropertyName>

BaseDataType

MaterialLotPropertyType

OptionalPlaceholder

TestedByMaterialTest

Object

<TestSpecification>

MaterialTestSpecificationType

OptionalPlaceholder

AssembledFromLot

Object

<AssemblyLot>

MaterialLotType

OptionalPlaceholder

AssembledFromSublot

Object

<AssemblySubLot>

MaterialSublotType

OptionalPlaceholder

HasISA95Attribute

Variable

AssemblyType

BaseDataType

BaseDataVariableType

Optional

HasISA95Attribute

Variable

AssemblyRelationship

BaseDataType

BaseDataVariableType

Optional

MadeUpOfMaterialSublot

Object

<Sublot>

MaterialSublotType

OptionalPlaceholder

DefinedByMaterialDefinition

Object

MaterialDefinition

MaterialDefinitionType

Optional

HasISA95Attribute

Variable

Status

CDTIdentifier

BaseDataVariableType

Optional

HasISA95Attribute

Variable

StorageLocation

CDTIdentifier

BaseDataVariableType

Optional

HasISA95Attribute

Variable

Quantity

BaseDataType

BaseDataVariableType

Optional

<PropertyName> is a placeholder for instances of MaterialLotPropertyType. These properties can have any name but shall be referenced using the HasISA95ClassProperty reference and shall be of type MaterialLotPropertyType or a sub type of it

<TestSpecification> is a placeholder for any test specification that this MaterialLotType conforms to. These test specifications can have any name but shall be referenced using the TestedByMaterialTest Reference and shall be of type MaterialTestSpecificationType or a subtype of it

<AssemblyLot> is a placeholder for any Material Lots that are used to compose this material. These MaterialLotType assemblies can have any name, but they shall be referenced using the AssembledFromLot reference and shall be of type MaterialLotType.

<AssemblySubLot> is a placeholder for any Material Sub Lots that are used to compose this material. These MaterialSublotType assemblies can have any name, but they shall be referenced using the AssembledFromSublot reference and shall be of type MaterialSublotType.

AssemblyType is flag that indicates if this assembly is a physical or logical assembly. This property is optional on a MaterialLotType, in that it is only on instances of MaterialLotTypes that are being used as an assembly.

AssemblyRelationship is flag that indicates if this assembly is permanent or transient. This property is optional on a MaterialLotType, in that it is only on Instances of MaterialLotTypes that are being used as an assembly.

<Sublot> is a placeholder for any Instance of MaterialSublotTypes that are used to compose this material. These instances of MaterialSublotTypes can have any name, but they shall be referenced using the MadeUpOf reference and shall be of type MaterialSublotType or one of its subtypes.

MaterialDefinition is a material definition that is associated to this instance of MaterialLotType.

Status provides optional status information.

StorageLocation is the optional identification of the physical location of the material lot.

Quantity is the amount of material in this lot.

The MaterialSublotType is a concrete ObjectType that can be used directly. It is a subtype of ISA95ObjectType defined in7.6.3.

This ObjectType indicates a specifically identified material Sublot. An instance of a MaterialSublotType may be tested by the execution of an instance of a MaterialTestSpecificationType. Instance of MaterialSublotType behave in the same manner as instances of MaterialLotType with regard to MaterialClassType definitions.

Table 78 - MaterialSublotType definition

Attribute

Value

BrowseName

MaterialSublotType

IsAbstract

False

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the ISA95ObjectType defined in 7.6.3.

HasISA95Property

Variable

<PropertyName>

BaseDataType

MaterialLotPropertyType

OptionalPlaceholder

TestedByMaterialTest

Object

<TestSpecification>

MaterialTestSpecificationType

OptionalPlaceholder

AssembledFromLot

Object

<AssemblyLot>

MaterialLotType

OptionalPlaceholder

AssembledFromSublot

Object

<AssemblySubLot>

MaterialSublotType

OptionalPlaceholder

HasISA95Attribute

Variable

AssemblyType

BaseDataType

BaseDataType

Optional

HasISA95Attribute

Variable

AssemblyRelationship

BaseDataType

BaseDataType

Optional

MadeUpOfMaterialSublot

Object

<Sublot>

MaterialSublotType

OptionalPlaceholder

DefinedByMaterialDefinition

Object

MaterialDefinition

MaterialDefinitionType

Optional

HasISA95Attribute

Variable

Status

CDTIdentifier

BaseDataVariableType

Optional

HasISA95Attribute

Variable

StorageLocation

CDTIdentifier

BaseDataVariableType

Optional

HasISA95Attribute

Variable

Quantity

BaseDataType

BaseDataVariableType

Optional

<PropertyName> is a placeholder for instance of MaterialLotPropertyType. These properties can have any name but shall be referenced using the HasISA95Property reference and shall be of type MaterialLotPropertyType or a sub type of it

<TestSpecification> is a placeholder for any test specification that this instance of MaterialSublotType conforms to. These test specifications can have any name but shall be referenced using the TestedByMaterialTest Reference and shall be of type MaterialTestSpecificationType or a subtype of it

<AssemblyLot> is a placeholder for any instance of MaterialLotType that are used to compose this material. These MaterialLotType assemblies can have any name, but they shall be referenced using the AssembledFromLot reference and shall be of type MaterialLotType.

<AssemblySubLot> is a placeholder for any instances of MaterialSublotType that are used to compose this material. These MaterialSublotType assemblies can have any name, but they shall be referenced using the AssembledFromSublot reference and shall be of type MaterialSublotType.

AssemblyType is flag that indicates if this assembly is a physical or logical assembly. This property is optional on a MaterialSublotType, in that it is only on instances of MaterialSublotType that are being used as an assembly.

AssemblyRelationship is flag that indicates if this assembly is permanent or transient. This property is optional on an instance MaterialLotType, in that it is only on instances of MaterialSublotType that are being used as an assembly.

<Sublot> is a placeholder for any instance of MaterialSublotType that are used to compose this material. These instance of MaterialSublotType can have any name, but they shall be referenced using the MadeUpOfMaterialSublot reference and shall be of type MaterialSublotType or one of its subtypes.

MaterialDefinition is a material definition that is associated to this instance of MaterialLotType.

Status provides optional status information.

StorageLocation is the optional identification of the physical location of the material lot.

Quantity is the amount of material in this lot.