1 Scope

This document specifies an OPC UA Information Model for the representation of a wire harness manufacturing system. It creates a common interface among different wire harness manufacturing technologies, manufacturers and model series. The OPC UA for Wire Harness Manufacturing interface allows the exchange of information between the wire harness manufacturing system and software systems like MES, SCADA, ERP or data analytics systems. The information model describes many different processes a wire harness manufacturing machine can perform.

The wire harness industry is an integrated system that consists of several production steps:

Wire cutting: Cutting, crimping and sealing of the individual wire strands that form the final product.

Harness assembly: All wire strands are placed together on an assembly board, placed in the proper casings and taped together

Testing: The quality and characteristics of raw materials, intermediate parts, and the final wire harness are tested throughout production to ensure that the final product meets quality standards and is produced in accordance with functional and non-functional requirements.

There are multiple types of equipment for manufacturing the final wire harness product. The most common categories include:

Cutting machines: Used to cut wires to specific lengths.

Stripping machines: Strip the insulation from the ends of wires.

Crimping machines: Used to attach terminals or connectors to the ends of wires.

Soldering/tinning stations: Used for soldering or tinning wire ends.

Wire twisting machines: Used to twist multiple wires together.

Wire marking machines: Mark wires for identification purposes.

Bundling machines: Bundle wires together into a harness.

Tie wraps and tubing machines: Used for applying tie wraps and shrinking tubing for additional wire protection.

Test machines: Perform various tests to ensure that raw materials, intermediate parts, and the final wire harness meet quality standards and are produced in accordance with functional and non-functional requirements.

Some machines combine multiple of these categories; some realize a combination of these categories and may include (partial) processes performed by the operator.

This Companion Specification focuses only on some of the processes in the wire cutting area of manufacturing, and only covers single core and single layer wire.

An overview of the relevant processes covered by this specification can be found in Section 4.1.4

2 Normative references

The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments and errata) applies.

OPC 10000-1, OPC Unified Architecture - Part 1: Overview and Concepts

http://www.opcfoundation.org/documents/10000-1/

OPC 10000-2, OPC Unified Architecture - Part 2: Security Model

http://www.opcfoundation.org/documents/10000-2/

OPC 10000-3, OPC Unified Architecture - Part 3: Address Space Model

http://www.opcfoundation.org/documents/10000-3/

OPC 10000-4, OPC Unified Architecture - Part 4: Services

http://www.opcfoundation.org/documents/10000-4/

OPC 10000-5, OPC Unified Architecture - Part 5: Information Model

http://www.opcfoundation.org/documents/10000-5/

OPC 10000-6, OPC Unified Architecture - Part 6: Mappings

http://www.opcfoundation.org/documents/10000-6/

OPC 10000-7, OPC Unified Architecture - Part 7: Profiles

http://www.opcfoundation.org/documents/10000-7/

OPC 10000-16, OPC Unified Architecture - Part 16: State Machines

http://www.opcfoundation.org/documents/10000-16/

OPC 10000-100, OPC Unified Architecture - Part 100: Devices

http://www.opcfoundation.org/documents/10000-100/

OPC 40001-1, OPC UA for Machinery - Part 1: Basic Building Blocks,V1.3

http://www.opcfoundation.org/documents/40001-1/

OPC 40001-3, OPC UA for Machinery - Part 3: Machinery Job Mgmt

http://www.opcfoundation.org/documents/40001-3/

OPC 40001-101, OPC UA for Machinery - Part 101: Machinery Result Transfer

http://www.opcfoundation.org/documents/40001-101/

OPC 10031-4, OPC UA for ISA-95 – Part 4: Job Control

http://www.opcfoundation.org/documents/10031-4/

VEC Version 2.1.0

Vehicle Electric Container (VEC) | ECAD WIKI (prostep.org)

3 Terms, definitions and conventions

3.1 Overview

It is assumed that the basic concepts of OPC UA information modelling and VEC are understood in this specification. This specification will use these concepts to describe the WireHarness Information Model. For the purposes of this document, the terms and definitions given in OPC 10000-1, OPC 10000-3, OPC 10000-4, OPC 10000-5, OPC 10000-7, OPC 10000-100 as well as the following apply.

Note that OPC UA terms and concepts defined in this specification are italicized in the specification.

3.2 OPC UA for WireHarness terms

3.2.1 Job

A task or set of operations to be carried out by the machinery.

3.2.1.1 Untitled

3.2.2 Material

A physical element that is related to a job (used or produced by the machine).

3.2.2.1 Untitled

3.2.3 Part

A physical element that is used by the machine (input material).

3.2.3.1 Untitled

3.2.4 Product

A physical element that is produced by the machine (output material).

3.2.4.1 Untitled

3.2.5 Article

A description of the product that is manufactured by the machine.

3.2.5.1 Untitled

3.2.6 ArticleSpec

A description of the product that shall be manufactured by the machine and the process input data that is to be followed.

3.2.6.1 Untitled

3.2.7 Process

A specific, individual action or operation within the greater manufacturing sequence.

3.2.7.1 Untitled

3.2.8 Process input data

Additional process-specific details required for manufacturing that cannot be attributed to the Material or Article.

3.2.8.1 Untitled

3.2.9 Results

Measurement outcomes captured during the setup or execution of a process.

3.2.10 Job response

The status of a Job, including State, Errors, Material Used, Number of Runs, etc.

3.2.10.1 Untitled

3.2.11 Wire

A conductor, usually covered with an insulating material, that is used for carrying electrical current or signals.

3.2.12 Multi-core wire

A wire that consists of multiple conductors, each typically covered with its own insulating material, all encased together within a shared outer sheath.

3.2.12.1 Untitled

3.2.13 Verify

Quality assurance measuring actions which must be performed to ensure that all processes run correctly.

3.2.13.1 Untitled

3.2.14 Monitoring

3.2.14.1 Untitled

3.3 Abbreviated terms

VEC – Vehicle Electric Container

MES – Manufacturing Execution System

3.4 Conventions used in this document

3.4.1 Conventions for Node descriptions

3.4.1.1 Node definitions

Node definitions are specified using tables (see Table 2).

Attributes are defined by providing the Attribute name and a value, or a description of the value.

References are defined by providing the ReferenceType name, the BrowseName of the TargetNode and its NodeClass.

If the TargetNode is a component of the Node being defined in the table the Attributes of the composed Node are defined in the same row of the table.

The DataType is only specified for Variables; “[<number>]” indicates a single-dimensional array, for multi-dimensional arrays the expression is repeated for each dimension (e.g. [2][3] for a two-dimensional array). For all arrays the ArrayDimensions is set as identified by <number> values. If no <number> is set, the corresponding dimension is set to 0, indicating an unknown size. If no number is provided at all the ArrayDimensions can be omitted. If no brackets are provided, it identifies a scalar DataType and the ValueRank is set to the corresponding value (see OPC 10000-3). In addition, ArrayDimensions is set to null or is omitted. If it can be Any or ScalarOrOneDimension, the value is put into “{<value>}”, so either “{Any}” or “{ScalarOrOneDimension}” and the ValueRank is set to the corresponding value (see OPC 10000-3) and the ArrayDimensions is set to null or is omitted. Examples are given in Table 1.

Table 1 – Examples of DataTypes
NotationData­TypeValue­RankArray­DimensionsDescription
0:Int320:Int32-1omitted or nullA scalar Int32.
0:Int32[]0:Int321omitted or {0}Single-dimensional array of Int32 with an unknown size.
0:Int32[][]0:Int322omitted or {0,0}Two-dimensional array of Int32 with unknown sizes for both dimensions.
0:Int32[3][]0:Int322{3,0}Two-dimensional array of Int32 with a size of 3 for the first dimension and an unknown size for the second dimension.
0:Int32[5][3]0:Int322{5,3}Two-dimensional array of Int32 with a size of 5 for the first dimension and a size of 3 for the second dimension.
0:Int32{Any}0:Int32-2omitted or nullAn Int32where it is unknown if it is scalar or array with any number of dimensions.
0:Int32{ScalarOrOneDimension}0:Int32-3omitted or nullAn Int32 where it is either a single-dimensional array or a scalar.

The TypeDefinition is specified for Objects and Variables.

The TypeDefinition column specifies a symbolic name for a NodeId, i.e. the specified Node points with a HasTypeDefinition Reference to the corresponding Node.

The ModellingRule of the referenced component is provided by specifying the symbolic name of the rule in the ModellingRule column. In the AddressSpace, the Node shall use a HasModellingRule Reference to point to the corresponding ModellingRule Object.

If the NodeId of a DataType is provided, the symbolic name of the Node representing the DataType shall be used.

Note that if a symbolic name of a different namespace is used, it is prefixed by the NamespaceIndex (see 3.4.2.2).

Nodes of all other NodeClasses cannot be defined in the same table; therefore only the used ReferenceType, their NodeClass and their BrowseName are specified. A reference to another part of this document points to their definition. Table 2 illustrates the table. If no components are provided, the DataType, TypeDefinition and ModellingRule columns may be omitted and only a Comment column is introduced to point to the Node definition.

Each Type Node or well-known Instance Node defined shall have one or more ConformanceUnits defined in 13.1 that require the Node to be in the AddressSpace.

The relations between Nodes and ConformanceUnits are defined at the end of the tables defining Nodes, one row per ConformanceUnit. The ConformanceUnits are reflected in the Category element for the Node definition in the UANodeSet (see OPC 10000-6).

The list of ConformanceUnits in the UANodeSet allows Servers to optimize resource consumption by using a list of supported ConformanceUnits to select a subset of the Nodes in an Information Model.

When a Node is selected in this way, all dependencies implied by the References are also selected.

Dependencies exist if the Node is the source of HasTypeDefinition, HasInterface, HasAddIn or any HierarchicalReference. Dependencies also exist if the Node is the target of a HasSubtype Reference. For Variables and VariableTypes, the value of the DataType Attribute is a dependency. For DataType Nodes, any DataTypes referenced in the DataTypeDefinition Attribute are also dependencies.

For additional details see OPC 10000-5.

Table 2 – Type Definition Table
Attribute Value
Attribute nameAttribute value. If it is an optional Attribute that is not set “--” will be used.
References NodeClass BrowseName DataType TypeDefinition Other
ReferenceType name NodeClass of the target Node. BrowseName of the target Node. DataType of the referenced Node, only applicable for Variables. TypeDefinition of the referenced Node, only applicable for Variables and Objects.Additional characteristics of the TargetNode such as the ModellingRule or AccessLevel.
NOTE Notes referencing footnotes of the table content.
Conformance Units
Name of ConformanceUnit, one row per ConformanceUnit

Components of Nodes can be complex that is containing components by themselves. The TypeDefinition, NodeClass and DataType can be derived from the type definitions, and the symbolic name can be created as defined in 3.4.3.1. Therefore, those containing components are not explicitly specified; they are implicitly specified by the type definitions.

The Other column defines additional characteristics of the Node. Examples of characteristics that can appear in this column are show in Table 3.

Table 3 – Examples of Other CharacteristicsCharacteristics
Name Short Name Description
0:MandatoryMThe Node has the Mandatory ModellingRule.
0:OptionalOThe Node has the Optional ModellingRule.
0:MandatoryPlaceholderMPThe Node has the MandatoryPlaceholder ModellingRule.
0:OptionalPlaceholderOPThe Node has the OptionalPlaceholder ModellingRule.
ReadOnlyROThe Node AccessLevel has the CurrentRead bit set but not the CurrentWrite bit.
ReadWriteRWThe Node AccessLevel has the CurrentRead and CurrentWrite bits set.
WriteOnlyWOThe Node AccessLevel has the CurrentWrite bit set but not the CurrentRead bit.

If multiple characteristics are defined they are separated by commas. The name or the short name may be used.

3.4.1.2 Additional References

To provide information about additional References, the format as shown in Table 4 is used.

Table 4 – <some> Additional References
SourceBrowsePath Reference Type Is Forward TargetBrowsePath
SourceBrowsePath is always relative to the TypeDefinition. Multiple elements are defined as separate rows of a nested table. ReferenceType nameTrue = forward Reference

TargetBrowsePath points to another Node, which can be a well-known instance or a TypeDefinition. You can use BrowsePaths here as well, which is either relative to the TypeDefinition or absolute.

If absolute, the first entry needs to refer to a type or well-known instance, uniquely identified within a namespace by the BrowseName.

References can be to any other Node.

3.4.1.3 Additional sub-components

To provide information about sub-components, the format as shown in Table 5 is used.

Table 5 – <some>Type Additional Subcomponents
BrowsePath Reference NodeClass BrowseName DataType TypeDefinition Others
BrowsePath is always relative to the TypeDefinition. Multiple elements are defined as separate rows of a nested tableNOTE Same as for Table 2
3.4.1.4 Additional Attribute values

The type definition table provides columns to specify the values for required Node Attributes for InstanceDeclarations. To provide information about additional Attributes, the format as shown in Table 6 is used.

Table 6 – <some>Type Attribute values for child nodes
BrowsePath <Attribute name> Attribute
BrowsePath is always relative to the TypeDefinition. Multiple elements are defined as separate rows of a nested table

The values of attributes are converted to text by adapting the reversible JSON encoding rules defined in OPC 10000-6.

If the JSON encoding of a value is a JSON string or a JSON number then that value is entered in the value field.. Double quotes are not included.

If the DataType includes a NamespaceIndex (QualifiedNames, NodeIds or ExpandedNodeIds) then the notation used for BrowseNames is used.

If the value is an Enumeration the name of the enumeration value is entered.

If the value is a Structure then a sequence of name and value pairs is entered. Each pair is followed by a newline. The name is followed by a colon. The names are the names of the fields in the DataTypeDefinition.

If the value is an array of non-structures then a sequence of values is entered where each value is followed by a newline.

If the value is an array of Structures or a Structure with fields that are arrays or with nested Structures then the complete JSON array or JSON object is entered.

There can be multiplem columns to define more than one Attribute.

3.4.2 NodeIds and BrowseNames

3.4.2.1 NodeIds

The NodeIds of all Nodes described in this standard are only symbolic names. Annex A defines the actual NodeIds.

The symbolic name of each Node defined in this document is its BrowseName, or, when it is part of another Node, the BrowseName of the other Node, a “.”, and the BrowseName of itself. In this case “part of” means that the whole has a HasProperty or HasComponent Reference to its part. Since all Nodes not being part of another Node have a unique name in this document, the symbolic name is unique.

The NamespaceUri for all NodeIds defined in this document is defined in Annex A. The NamespaceIndex for this NamespaceUri is vendor-specific and depends on the position of the NamespaceUri in the server namespace table.

Note that this document not only defines concrete Nodes, but also requires that some Nodes shall be generated, for example one for each Session running on the Server. The NodeIds of those Nodes are Server-specific, including the namespace. But the NamespaceIndex of those Nodes cannot be the NamespaceIndex used for the Nodes defined in this document, because they are not defined by this document but generated by the Server.

3.4.2.2 BrowseNames

The text part of the BrowseNames for all Nodes defined in this document is specified in the tables defining the Nodes. The NamespaceUri for all BrowseNames defined in this document is defined in 14.2.

For InstanceDeclarations of NodeClass Object and Variable that are placeholders (OptionalPlaceholder and MandatoryPlaceholder ModellingRule), the BrowseName and the DisplayName are enclosed in angle brackets (<>) as recommended in OPC 10000-3.

If the BrowseName is not defined by this document, a namespace index prefix is added to the BrowseName (e.g., prefix '0' leading to ‘0:EngineeringUnits’ or prefix '2' leading to ‘2:DeviceRevision’). This is typically necessary if a Property of another specification is overwritten or used in the OPC UA types defined in this document. Table 7 provides a list of namespaces and their indexes as used in this document.

3.4.3 Common Attributes

3.4.3.1 General

The Attributes of Nodes, their DataTypes and descriptions are defined in OPC 10000-3. Attributes not marked as optional are mandatory and shall be provided by a Server. The following tables define if the Attribute value is defined by this specification or if it is server-specific.

For all Nodes specified in this specification, the Attributes named in Table 7 shall be set as specified in the table.

Table 7 – Common Node Attributes
Attribute Value
DisplayNameThe DisplayName is a LocalizedText. Each server shall provide the DisplayName identical to the BrowseName of the Node for the LocaleId “en”. Whether the server provides translated names for other LocaleIds is server-specific.
DescriptionOptionally a server-specific description is provided.
NodeClassShall reflect the NodeClass of the Node.
NodeIdThe NodeId is described by BrowseNames as defined in 3.4.2.1.
WriteMaskOptionally the WriteMask Attribute can be provided. If the WriteMask Attribute is provided, it shall set all non-server-specific Attributes to not writable. For example, the Description Attribute may be set to writable since a Server may provide a server-specific description for the Node. The NodeId shall not be writable, because it is defined for each Node in this specification.
UserWriteMaskOptionally the UserWriteMask Attribute can be provided. The same rules as for the WriteMask Attribute apply.
RolePermissionsOptionally server-specific role permissions can be provided.
UserRolePermissionsOptionally the role permissions of the current Session can be provided. The value is server-specifc and depend on the RolePermissions Attribute (if provided) and the current Session.
AccessRestrictionsOptionally server-specific access restrictions can be provided.
3.4.3.2 Objects

For all Objects specified in this specification, the Attributes named in Table 8 shall be set as specified in the table. The definitions for the Attributes can be found in OPC 10000-3.

Table 8 – Common Object Attributes
Attribute Value
EventNotifierWhetherthe Node can be used to subscribe to Events or not is server-specific.
3.4.3.3 Variables

For all Variables specified in this specification, the Attributes named in Table 9 shall be set as specified in the table. The definitions for the Attributes can be found in OPC 10000-3.

Table 9 – Common Variable Attributes
Attribute Value
MinimumSamplingIntervalOptionally, a server-specific minimum sampling interval is provided.
AccessLevelThe access level for Variables used for type definitions is server-specific, for, f all other Variables defined in this specification, the access level shall allow reading; other settings are server-specific.
UserAccessLevelThe value for the UserAccessLevel Attribute is server-specific. It is assumed that all Variables can be accessed by at least one user.
ValueFor Variables used as InstanceDeclarations, the value is server-specific; otherwise it shall represent the value described in the text.
ArrayDimensions

If the ValueRank does not identify an array of a specific dimension (i.e. ValueRank <= 0) the ArrayDimensions can either be set to null or the Attribute is missing. This behaviour is server-specific.

If the ValueRank specifies an array of a specific dimension (i.e. ValueRank > 0) then the ArrayDimensions Attribute shall be specified in the table defining the Variable.

HistorizingThe value for the Historizing Attribute is server-specific.
AccessLevelExIf the AccessLevelEx Attribute is provided, it shall have the bits 8, 9, and 10 set to 0, meaning that read and write operations on an individual Variable are atomic, and arrays can be partly written.
3.4.3.4 VariableTypes

For all VariableTypes specified in this specification, the Attributes named in Table 10 shall be set as specified in the table. The definitions for the Attributes can be found in OPC 10000-3.

Table 10 – Common VariableType Attributes
Attributes Value
ValueOptionally a server-specific default value can be provided.
ArrayDimensions

If the ValueRank does not identify an array of a specific dimension (i.e. ValueRank <= 0) the ArrayDimensions can either be set to null or the Attribute is missing. This behaviour is server-specific.

If the ValueRank specifies an array of a specific dimension (i.e. ValueRank > 0) then the ArrayDimensions Attribute shall be specified in the table defining the VariableType.

3.4.3.5 Methods

For all Methods specified in this specification, the Attributes named in Table 11 shall be set as specified in the table. The definitions for the Attributes can be found in OPC 10000-3.

Table 11 – Common Method Attributes
Attributes Value
ExecutableAll Methods defined in this specification shall be executable (Executable Attribute set to “True”), unless it is defined differently in the Method definition.
UserExecutableThe value of the UserExecutable Attribute is server-specific. It is assumed that all Methods can be executed by at least one user.

3.4.4 Structures

OPC 10000-3 differentiates between different kinds of Structures. The following conventions explain, how these Structures shall be defined.

The first kind are Structures without optional fields where none of the fields allows subtype (except fields with abstract DataTypes).. Its definition is in Table 12.

Table 12 – Structures without optional fields where none of the fields allow subtypes
Name Type Description
<someStructure>structureSubtype of <someParentStructure> defined in …

SP1

0:Byte[]Setpoint 1

SP2

0:Byte[]Setpoint 2

The second kind are Structures with optional fields where none of the fields allows subtypes (except fields with abstract DataTypes).. Its definition is in Table 13.

Structures with fields that are optional have an “Optional” column. Fields that are optional have True set, otherwise False.

Table 13 – Structures with optional fields
Name Type Description Optional
<someStructure>structureSubtype of <someParentStructure> defined in …

SP1

0:Byte[]Setpoint 1False

SP2

0:Byte[]Setpoint 2True

The third kind are Structures without optional fields where one or more of the fields allow subtypes. Its definition is in Table 14.

Structures with fields that allow subtypes have an “Allow Subtypes” column. Fields that allow subtypes have True set, otherwise False. Fields with abstract DataTypes can always be subtypedsubtyped.

Table 14 – Structures where one or more of the fields allow subtypes
Name Type Description Allow SubTypes
<someStructure>structureSubtype of <someParentStructure> defined in …

SP1

0:Byte[]Setpoint 1False

Allow Subtypes

0:ByteStringSome Bytestring True

4 General information on Wire Harness Manufacturing and OPC UA

4.1 Introduction to Wire Harness Manufacturing

4.1.1 Overview

The standardization and depiction of the wire harness machinery rely on several fundamental building blocks, namely:

Identification

ItemState

ApplicationMode

Job Management

Result Management

In this sector-specific adaptation, both Job Management and Result Management are extended to meet unique industry needs, while the other building blocks are incorporated unchanged.

Figure 1 illustrates the schematic structure of a job in the wire harness domain and its interplay with the results and the actual assets involved.

Figure 1 – Abstract overview of a Wire Harness Job

To execute, or run a job, multiple parts are supplied to the machine and processed into products. A product aligns with a specification, referred to as 'ArticleSpec.' An ArticleSpec contains process information, article information, and a reference to the parts used (“Part info“ in the above image). Additionally, measurement results may be captured by the machine or the machine operator during setup and production. During setup, a set of verification measurements may be gathered that apply to the entire production lot. During production, a set of monitoring measurements may be collected for each item produced. The set of validation and monitoring processes are part of the article specification. These are understood within this specification to be processed on an instance-dependent basis. Each job can also have additional status information, which is stored in the Job Response (see OPC UA 40001-1).

4.1.2 Introduction to VEC (Vehicle Electric Container)

4.1.2.1 Overview

The Vehicle Electric Container (VEC) is a standardized data model that facilitates the exchange, collaboration, and archiving of electrical network, wiring harness and wiring harness component information in the automotive industry. It serves as a tool-independent digital representation of a vehicle's electrical system, supporting the conceptualization and design of logical mockups, the exchange of component data or the product specification of wiring harnesses. The VEC helps ensure traceability throughout the lifecycle of a vehicle's electrical system.

Developed under the guidance of the VDA and the prostep ivip Association, VEC is a standard in the automotive industry, and is published as VDA 4968 and PSI21.

Note: The complete VEC standard can be found here: https://ecad-wiki.prostep.org/specifications/vec/

4.1.2.2 VEC in context of this Companion Specification

This Companion Specification utilizes subsets of the VEC data model for the description of 'Article' and 'Part' information (see Figure 2). There are multiple reasons for this:

It enhances interoperability and consistency in the exchange of data across different systems and equipment within the automotive industry. Article and Part information is used throughout the process, not only in communication with production machines.

Components for the wiring harness (Parts) and the wiring harness itself (Article) are diverse, with great variety and many facets. Reusing vetted modelling concepts for their description increases the quality of these aspects for this Companion Specification and enables accelerated and efficient definitions.

It allows this Companion Specification to focus on the additional aspects that are relevant to machine communication, such as job management, result data and process parameters.

Due to its scope as a common language in the wiring harness value chain, the VEC standard includes modelling concepts that are necessary in the design and engineering process, but not during production or for certain machine types (e.g., system schematics). The data model elements used in this Companion Specification are a subset of the complete data model defined by the VEC standard.

Concrete mapping between VEC and OPC UA is described in section 9.

Figure 2 – VEC as Part of the Job Description
4.1.2.3 Basic Structure of VEC Data

The key concepts of the VEC are DocumentVersion and 7:PartVersion (see Figure 3).

Figure 3 – Basic Structure of VEC Data

A 7:PartVersion in VEC is a unique identifier for a specific version/revision of a part. In VEC terms, a part is essentially anything that is used in the product or is created during production (a part can be composed of instances of other parts). This means that a 7:PartVersion in VEC applies to both the Part and Article in terms of this Companion Specification.

Note: A Part represents a type definition, not a specific instance of a Part; in other words, a Part is identified by a part or material number, not a serial number.

The term DocumentVersion goes back to the roots of VEC in the STEP standard and the document-oriented product development that prevailed at that time. In fact, DocumentVersion in the VEC stands for any piece of information or a data set that is clearly identifiable and whose changes can be tracked (e.g., a certain state of the properties of a connector, a terminal or a wire [Parts in this Companion Specification], or the definition of a lead set [Article in this Companion Specification]).

The content of a DocmentVersion is used to describe 7:PartVersions. They are represented by individual entities for the following reasons:

In general, a document can describe multiple parts at same time, whereas a part can also be described by multiple documents (e.g., a data sheet, a drawing, a 3D model).

Both can evolve independently, so tracking of changes & revisions must also be tracked inidividually (e.g., the data for a component can change without changing the physical component).

For example, in the context of this Companion Specification, this could mean that if a machine is sent a new 7:PartVersion, the input material has changed physically and the machine needs to be re-equipped for this new material. However, if only the content of a DocumentVersion changes, the same material processed, just in a different way.

The 7:PartVersion and DocumentVersion is a generic concept for tracking hardware and information changes. The information is described using specific subtypes of Specifications within a DocumentVersion.

Every subset of the VEC model that defines a specific aspect of the product has its own Specification; for example, a connector is described by a ConnectorHousingSpecification, a terminal by TerminalSpecification, etc. The same applies for more complex aspects of the article definition; e.g., the bill of materials is defined with a PartStructureSpecification, the contacting of wire ends with terminals with a ContactingSpecification, the basic structure of a wiring harness or leadset by a TopologySpecification, the geometric form by a BuildingBlockSpecification3D, etc.

4.1.3 Part and Article Structure

Parts and Articles within this Companion Specification are composed of structures from two distinct sources: the ISA-95 Material Model from ISA95, which is intended for generic use, and the domain-specific VEC (Vehicle Electric Container) model. As these have both been integrated within this Companion Specification, Part and Article always consist of two segments: the generic component derived from the ISA-95 model, and the wire harness-specific element from the VEC model.

When adding a Parts, Article, or Job, it must be fully described and only reference existing elements. For example, when a new Job is added, it must reference already existing Parts and Articles within the system. When deleting elements, the integrity of the remaining data must not be compromised. This means the system must always ensure there are no references to missing or not yet transferred elements. For instance, if an Article is deleted, the system must verify that no existing Jobs reference this Article to maintain data consistency.

4.1.4 Important types of Processes

4.1.4.1 Overview

The wire harness industry is characterized by a series of specialized and critical processes that ensure the production of high-quality and functional wire harnesses. These processes are integral to the manufacturing flow and are carefully designed to meet precise design requirements.

This section provides an overview of the relevant processes covered by this Companion Specification:

4.1.4.2 Crimp

Affixing metal connectors to wires with a tight deformation.

4.1.4.3 Cut

Cutting wires to specific lengths.

4.1.4.4 Seal

Applying protective materials to connections.

4.1.4.5 Slit

Longitudinal slitting of insulation along the wire.

4.1.4.6 Strip

Removing insulation from wire ends in preparation for connection via crimping or soldering.

4.1.5 Parts

4.1.5.1 Overview

The following is an overview of the categories of materials that are supported in this Companion Specification:

4.1.5.2 Housing

Provides the physical structure to support and protect connectors and wires, often made from durable plastics or metals.

4.1.5.3 Terminal

The component within a connector where the wire is attached, which can be designed for crimping, soldering, or other types of connections.

4.1.5.4 Seal

Materials used to prevent moisture, dust, and other environmental contaminants from affecting the connections and components within the harness.

4.1.5.5 Sleeve

Flexible, often tubular, material that is used to bundle, protect, and insulate wires within the harness, available in various materials for different protective qualities.

4.1.5.6 Wire

A conductor, usually covered with an insulating material, that is used for carrying electrical current or signals.

4.1.6 Example Workflow for Job Management

4.1.6.1 Overview

There are multiple categories of wire harness manufacturing machines, each with different capabilities. Yet many of them have a local data store to keep part, spec and article information. This means that there are multiple ways to send part, article and job information to a machine.

Job Management is based on ISA95 and Machinery Job Control. This section provides some examples for use in a wire harness. These examples illustrate the concept with consideration of domain-specific aspects, such as different ways to transfer data.

Other workflows, or a mix of these examples is also possible. This example also represents a simplified version of the model.

In general, it is important that all information needed for the process is available beforehand. This means that a job can only be stored if the article spec is available (or sent with the job). Likewise, the article spec can only be stored if the part information is already available (or sent with the article spec). Thus, the model does not further restrict the base specifications. Some aspects are not shown in this example.

Parts of the original model are omitted for illustrative purposes.

4.1.6.2 Workflow Variant with stored Part and Article information

This section describes a variant of the standardized workflow (other variants are possible) to store a Job within the framework of the Wire Harness Companion Specification, exemplified by the sequence diagrams in Figure 4. In this example, the part and article spec are stored on the machine before the Job is stored. The Part and Article can be stored via OPC UA (right side) or in another way, such as with a local HMI (left side).

Figure 4 – Example Sequence for Job Workflow with separate Part and Article Management

The workflow begins with the MES, which serves as the central control system overseeing the manufacturing operations, communicating with the MachineryItem responsible for executing the job:

Add Parts: The process initiates with the MES instructing the machine to add individual parts required for the job. In this case, 'Add Part 1,' 'Add Part 2,' and 'Add Part 3' are sequential steps that involve the MES sending commands to the machine to prepare the necessary components.

Add Article: After the parts are prepared, the MES instructs the machine to add 'Article A,' which is based on the assembly or combination of Parts 1-3. The article represents the blueprint or design specification for the final product.

StoreAndStartJob: With the parts and article prepared, the MES sends a StoreAndStartJob command. This includes the ArticleSpec and a directive to execute a set number of runs, which in this example is 10. This command effectively stores the job data and triggers the start of the production run.

Process Results: As the machine begins processing, it sends the results to the MES. These include 'Result Process A Run 1,' representing the outcome of the first run of process A, through 'Result Process m Run n,' denoting subsequent processes and runs. These results provide insight into the execution of each job run.

Job Result (KPI Details): Finally, after the job runs are completed, the machine sends a detailed report of the job results back to the MES. This report includes Key Performance Indicator (KPI) details, which are crucial for evaluating the efficiency and quality of the job execution.

4.1.6.3 Workflow Variant with included Part and Article Management

The sequence diagram in Figure 5 depicts a streamlined process for initiating a job on a wire harness machine. Unlike the previous example, where parts and article information were added in separate steps, this approach consolidates the workflow by sending all necessary information along with the job creation command.

StoreAndStartJob: The MES sends a single StoreAndStartJob command to the machine. This command is comprehensive, containing all necessary data required for the job: 'ArticleSpec A,’ ‘Part 1-3,’ additional process input data, and the number of runs, which is set to 10 in this scenario. This encapsulation of data reduces the number of communication steps between the MES and the machine, leading to a more streamlined operation.

Processing and Feedback: As the job starts, the machine processes the information and begins the manufacturing runs. Feedback is then provided to the MES after each process is executed:

Result Process A Run 1: Details from the first run of Process A are sent back to the MES.

Result Process m Run n: As subsequent processes are completed, their results are also reported back to the MES in real time.

Job Result (KPI Details): At the conclusion of the job, a comprehensive report including KPI details is transmitted to the MES. These KPIs provide valuable insights into the performance, efficiency, and quality of the executed job.

Figure 5 – Example Sequence for Job Workflow without separate Part and Article Management

4.2 Introduction to OPC UA

4.2.1 What is OPC UA?

OPC UA is an open and royalty free set of standards designed as a universal communication protocol. While there are numerous communication solutions available, OPC UA has key advantages:

A state of art security model (see OPC 10000-2).

A fault tolerant communication protocol.

An information modelling framework that allows application developers to represent their data in a way that makes sense to them.

OPC UA has a broad scope which delivers for economies of scale for application developers. This means that a larger number of high-quality applications at a reasonable cost are available. When combined with semantic models such as Wire Harness Manufacturing, OPC UA makes it easier for end users to access data via generic commercial applications.

The OPC UA model is scalable from small devices to ERP systems. OPC UA Servers process information locally and then provide that data in a consistent format to any application requesting data - ERP, MES, PMS, Maintenance Systems, HMI, Smartphone or a standard Browser, for examples. For a more complete overview see

OPC 10000-1.

4.2.2 Basics of OPC UA

As an open standard, OPC UA is based on standard internet technologies, like TCP/IP, HTTP, Web Sockets.

As an extensible standard, OPC UA provides a set of Services (see OPC 10000-4) and a basic information model framework. This framework provides an easy manner for creating and exposing vendor defined information in a standard way. More importantly all OPC UA Clients are expected to be able to discover and use vendor-defined information. This means OPC UA users can benefit from the economies of scale that come with generic visualization and historian applications. This specification is an example of an OPC UA Information Model designed to meet the needs of developers and users.

OPC UA Clients can be any consumer of data from another device on the network to browser based thin clients and ERP systems. The full scope of OPC UA applications is shown in Figure 6.

Figure 6 – The Scope of OPC UA within an Enterprise

OPC UA provides a robust and reliable communication infrastructure having mechanisms for handling lost messages, failover, heartbeat, etc. With its binary encoded data, it offers a high-performing data exchange solution. Security is built into OPC UA as security requirements become more and more important especially since environments are connected to the office network or the internet and attackers are starting to focus on automation systems.

4.2.3 Information modelling in OPC UA

4.2.3.1 Concepts

OPC UA provides a framework that can be used to represent complex information as Objects in an AddressSpace which can be accessed with standard services. These Objects consist of Nodes connected by References. Different classes of Nodes convey different semantics. For example, a Variable Node represents a value that can be read or written. The Variable Node has an associated DataType that can define the actual value, such as a string, float, structure etc. It can also describe the Variable value as a variant. A Method Node represents a function that can be called. Every Node has a number of Attributes including a unique identifier called a NodeId and non-localized name called as BrowseName. An Object representing a ‘Reservation’ is shown in Figure 7.

Figure 7 – A Basic Object in an OPC UA Address Space

Object and Variable Nodes represent instances and they always reference a TypeDefinition (ObjectType or VariableType) Node which describes their semantics and structure. Figure 8 illustrates the relationship between an instance and its TypeDefinition.

The type Nodes are templates that define all of the children that can be present in an instance of the type. In the example in Figure 8 the PersonType ObjectType defines two children: First Name and Last Name. All instances of PersonType are expected to have the same children with the same BrowseNames. Within a type the BrowseNames uniquely identify the children. This means Client applications can be designed to search for children based on the BrowseNames from the type instead of NodeIds. This eliminates the need for manual reconfiguration of systems if a Client uses types that multiple Servers implement.

OPC UA also supports the concept of sub-typing. This allows a modeller to take an existing type and extend it. There are rules regarding sub-typing defined in OPC 10000-3, but in general they allow the extension of a given type or the restriction of a DataType. For example, the modeller may decide that the existing ObjectType in some cases needs an additional Variable. The modeller can create a subtype of the ObjectType and add the Variable. A Client that is expecting the parent type can treat the new type as if it was of the parent type. Regarding DataTypes, subtypes can only restrict. If a Variable is defined to have a numeric value, a sub type could restrict it to a float.

Figure 8 – The Relationship between Type Definitions and Instances

References allow Nodes to be connected in ways that describe their relationships. All References have a ReferenceType that specifies the semantics of the relationship. References can be hierarchical or non-hierarchical. Hierarchical references are used to create the structure of Objects and Variables. Non-hierarchical are used to create arbitrary associations. Applications can define their own ReferenceType by creating subtypes of an existing ReferenceType. Subtypes inherit the semantics of the parent but may add additional restrictions. Figure 9 depicts several References, connecting different Objects.

Figure 9 – Examples of References between Objects

The above figures utilize a notation that was developed for the OPC UA specification. The notation is summarized in Figure 10. UML representations can also be used; however, the OPC UA notation is less ambiguous because there is a direct mapping from the elements in the figures to Nodes in the AddressSpace of an OPC UA Server.

Figure 10 – The OPC UA Information Model Notation

A complete description of the different types of Nodes and References can be found in OPC 10000-3 and the base structure is described in OPC 10000-5.

OPC UA specification defines a very wide range of functionality in its basic information model. It is not required that all Clients or Servers support all functionality in the OPC UA specifications. OPC UA includes the concept of Profiles, which segment the functionality into testable certifiable units. This allows the definition of functional subsets (that are expected to be implemented) within a companion specification. The Profiles do not restrict functionality, but generate requirements for a minimum set of functionality (see OPC 10000-7)

4.2.3.2 Namespaces

OPC UA allows information from many different sources to be combined into a single coherent AddressSpace. Namespaces are used to make this possible by eliminating naming and id conflicts between information from different sources. Each namespace in OPC UA has a globally unique string called a NamespaceUri which identifies a naming authority and a locally unique integer called a NamespaceIndex, which is an index into the Server's table of NamespaceUris. The NamespaceIndex is unique only within the context of a Session between an OPC UA Client and an OPC UA Server- the NamespaceIndex can change between Sessions and still identify the same item even though the NamespaceUri's location in the table has changed. The Services defined for OPC UA use the NamespaceIndex to specify the Namespace for qualified values.

There are two types of structured values in OPC UA that are qualified with NamespaceIndexes: NodeIds and QualifiedNames. NodeIds are locally unique (and sometimes globally unique) identifiers for Nodes. The same globally unique NodeId can be used as the identifier in a node in many Servers – the node's instance data may vary but its semantic meaning is the same regardless of the Server it appears in. This means Clients can have built-in knowledge of of what the data means in these Nodes. OPC UA Information Models generally define globally unique NodeIds for the TypeDefinitions defined by the Information Model.

QualifiedNames are non-localized names qualified with a Namespace. They are used for the BrowseNames of Nodes and allow the same names to be used by different information models without conflict. TypeDefinitions are not allowed to have children with duplicate BrowseNames; however, instances do not have that restriction.

4.2.3.3 Companion Specifications

An OPC UA Companion Specification for an industry-specific vertical market describes an Information Model by defining ObjectTypes, VariableTypes, DataTypes and ReferenceTypes that represent the concepts used in the vertical market. It may also potentially describe well-defined Objects as entry points into the AddressSpace.

5 Use cases

Use cases 5.1 – 5.5 are derived from OPC 40001-1; use cases 5.6 – 5.9 are derived from OPC 40001-3.

5.1 Machine Identification and Nameplate

As a client, I want to be able to list all modules installed on the server (including an AssetID) so that I can track my assets.

Information for this use case can be found in OPC 40001-1 (see Machine Identification and Nameplate) and section 9.7 of this Companion Specification.

5.2 Component Identification and Nameplate

As a client, I want to be able to list all modules installed on the server (including an AssetID) so that I can track my assets.

This information can be found in OPC 40001-1 (see Component Identification and Nameplate).

5.3 Operating State

As an MES client, I want to gather the values of the operating state (Executing, Not executing, Out of service, etc.) of the server so that I can calculate KPIs.

Information for this use case can be found in OPC 40001-1 (see MachineryItemState and MachineryOperationMode).

5.4 Job Order CRUD Operations

As an MES, I want to send/update/delete job orders identified with an ID to a specific machine to achieve my production goals.

Information for this use case can be found in OPC 10031-4 (entire document, but in particular according to ISA95JobOrderReceiverObjectType) and OPC 40001-3.

5.5 Running Job Information

As a dashboard-like client, I want to collect information about running jobs and the article currently being produced on the asset.

Information for this use case can be found in OPC 10031-4 (entire document, but in particular according toISA95JobResponseProviderObjectType) and OPC 40001-3.

5.6 Article Specifications Management

As an MES, I want to send article specifications to the machine so that the machine knows what to produce.

Information for this use case can be found in sections 4.1.2, 4.1.3, 4.1.6, 6.3, and 10.3 of this Companion Specification.

5.7 Job Status Monitoring

As a client, I want to know the status of a job I sent to the server to know if it is in production, paused, canceled, or finished so that I can keep track of my production resources.

Information for this use case can be found in OPC 10031-4 (entire document, but in particular according toISA95JobResponseProviderObjectType) and OPC 40001-3.

5.8 Material Consumption Tracking

As a client, I want to receive the material consumption statistics for a job so that I can calculate KPIs.

Information for this use case can be found in OPC 10031-4 (entire document, but in particular according to3:ISA95MaterialDataType, ISA95JobResponseProviderObjectType), OPC 40001-3 (Material), and sections 4.1.6 and 6.8 of this Companion Specification.

5.9 Verification Data Collection

As a client, I want to be able to collect verification results for decision making purposes.

Information for this use case can be found in OPC 40001-101 and sections 4.1.6, 6.1, 6.6, and 12.2 of this Companion Specification.

5.10 Production Locking

As an MES, I want to lock and unlock production at any time.

5.11 Identifiable Parts Management

As an MES, I want to manage identifiable parts (CRUD) for possible reuse in later articles by referring to them.

Information for this use case can be found in sections 4.1.2, 4.1.3, 4.1.6, 6.3, and 10.2 of this Companion Specification.

5.12 Multi-leadset Article Specification

As an MES, I want to specify multi-leadset articles to produce harnesses.

5.13 Maintenance Data Collection

As a client, I want to have counter and usage time (e.g., operating time) information from the server so that I can plan maintenance.

This information can be found in OPC 40001-1 (see Operation Counter).

5.14 Process Progress Monitoring

As a client, I want to see the progress of completed processes.

Information for this use case can be found in OPC 40001-101 and sections 4.1.6, 6.1, 6.6, and 12.2 of this Companion Specification.

6 General Recommendations and Tips for Implementation

6.1 Data Consistency in Job Management

Within the framework of job management, the flow and association of data are meticulously structured to ensure consistency and traceability throughout the production process. The connectivity of data is outlined as follows:

An Article is composed of multiple Parts.

Items represent specific instances of an Article.

Processes are defined abstractly.

Processes are the tangible implementations of a process. For instance, if a wire requires both ends to be crimped, the job will have two distinct processes of the type 'Crimp,' each with its own identifier.

Processes can reference corresponding elements in the ArticleSpec.

Results are uniquely identified using the Process ID (ArticleID and JobID are also given in the result but are not sufficient to clearly assign the result to the corresponding processes or parts). This ensures precise allocation and traceability of outcomes.

Figure 11 illustrates the thoroughness of data, from a measurement result to a Contact Point within an Article:

CP1 (Contact Point 1) and CP2 (Contact Point 2) are elements of a Part within the Article that need processing.

Strip 1, Crimp 1, Cut 1, Strip 2, and Crimp 2 represent individual tasks to be performed, tied to their respective Crimp points.

JOB Result: Results, such as 'Actual Crimp Height,' are the measurable outcomes from the execution of the job. Each result is linked back to the specific process instance, such as Crimp 1 or Crimp 2, ensuring that the measurement can be traced back to the corresponding action and Part within the Article.

The visualization of the process in the image underscores the seamless flow of data from the initial design of an Article through to the final measured result of a job. This integration is vital for maintaining the integrity of the manufacturing process, allowing for precise adjustments, quality control, and accountability across all stages of production. By establishing a clear linkage between Articles, jobs, process instances, and results, the system facilitates a robust and efficient manufacturing environment for wire harnesses.

Figure 11 – Article, JOB, and JOB Result Correlation

6.2 Mapping Part Data

A Part in this Companion Specification is represented by a value of the 3:ISA95MaterialDataType which contains an entry in the Properties field. Table 15 lists all Parameters a needed by a Part element.

Table 15 – 3:ISA95MaterialDataType Parameters of a Part
ParameterNameDataTypeDescription
VECPartVersion7:PartVersionContains the master data of the part. Only the ID of the 7:PartVersion is mandatory. The Values of Company, PartNumber, 7:PartVersion are optional.
VECDocumentVersion7:DocumentVersionContains the master data of the article. The field Specification contains important specifications for that part. The kind of specification depends on the process of the machine.

The MaterialDefinitionID represents the part number, which must be unique within the company.

The MaterialClassID is restricted to the value range of the VEC 7:PrimaryPartType. The table contains the MaterialClassID (7:PrimaryPartType) for the different processes.

Table 16 – MaterialClassIDs used in this Companion Specification for Parts
ProcessMaterialClassID
CutWire
StripWire
SealCavitySeal, MultiCavitySeal
CrimpTerminal, WireEndAccessory, PluggableTerminal, RingTerminal, WireEndAccessory, (SpliceTerminal, BoltTerminal, BridgeTerminal, OpenWireEndTerminal)

The linkage between the 3:ISA95MaterialDataType and the VEC is established through the 7:PartVersion. The PartVersion.PartNumber must be the same as in MaterialDefinitionID.

The field Specification of the 7:DocumentVersions contains important specifications for the Part. The kind of specification depends on the processes of the machine. If a machine covers more than one process, all Specifications need to be implemented. Section 10.2 contains more information about the specification and the content which is needed.

Table 17 – Needed VEC Specifications for a Part
ProcessNameSpecifications
Crimp

WireSpecification/

TerminalSpecification

CutWireSpecification
Seal

WireSpecification/

CavityPartSpecification

SlitWireSpecification
StripWireSpecification

It is recommended that only one entry is used for each Part. If the quantity of the Part is more than one, the Quantity field should be used.

6.3 Mapping Article Spec Data

An Article in this Companion Specification is represented by a value of the 3:ISA95MaterialDataType which contains an entry in the Properties field. Table 18 lists all Parameters needed by an Article element.

Table 18 – 3:ISA95MaterialDataType Parameters of an Article
ParameterName DataType Description
VECPartVersion 7:PartVersion Contains the master data of the article. Only the ID of the 7:PartVersion is mandatory. The Values of Company, PartNumber, 7:PartVersion are optional.
VECDocumentVersion7:DocumentVersionContains the master data of the article. The field Specification contains important specifications for that article. The kind of specification depends on the process of the machine.
ProcessesProcessInputType[]Contains the information of which processes should be done to create the article. The SubTypes of the ProcessInputType can contain process parameters and monitoring flags.

The MaterialDefinitionID represents the article number, which must be unique within the company.

The MaterialClassID is restricted to the value “PartStructure”.

The linkage between the 3:ISA95MaterialDataType and the VEC is established through the 7:PartVersion, where all attributes except for _id are optional.

Table 19 – Needed VEC Specifications and Roles for an Article
ProcessNameSpecifications Roles of the components in the CompositionSpecification
Crimp

CompositionSpecification

PartStructureSpecification

ContactingSpecification

WireRole

TerminalRole

Cut

CompositionSpecification

PartStructureSpecification

WireRole

Seal

CompositionSpecification

PartStructureSpecification

WireRole

CavityPartRole

Slit

CompositionSpecification

PartStructureSpecification

WireRole
Strip

CompositionSpecification

PartStructureSpecification

WireRole

The details for the different Parts and Articles are described below.

6.4 Relevant Elements of ISA95JobOrderDataType

Table 20 – Mandatory fields of the ISA95JobOrderDataType
Name Type Description
JobOrderID0:StringAn identification of the Job Order.
JobOrderParameters3ISA95ParameterDataType[]Key value pairs, not associated with a resource, that are provided as part of the job order; may be empty if not specified.
MaterialRequirements3:ISA95MaterialDataType[]

A specification of any material requirements associated with the job order; may be empty if not specified.

Note: To comply with this Companion Specification, at least one material must be specified (including Article Specification and Quantity > 0), and the MaterialUse must be set to "material produced".

6.5 Relevant Elements of ISA95JobResponseDataType

Table 22 – Mandatory fields of the ISA95JobRespsonseDataType
Name Type Description
JobResponseID0:StringA unique identification of the Job Response.
JobOrderID0:StringAn identification of the Job Order.
JobOrderParameters3:ISA95ParameterDataType[]Key value pairs, not associated with a resource, that are provided as part of the job order; may be empty if not specified.
JobState3:ISA95StateDataType[]The current state of the job. The array shall provide at least one entry representing the top-level state and, potentially, additional entries representing substates. The first entry shall be the top-level entry, having the BrowsePath set to null. The order of the substates is not defined.
MaterialActuals3:ISA95MaterialDataType[]

A specification of any material requirements associated with the job order; may be empty if not specified.

Note: To comply with this Companion Specification, at least one material must be specified (including Article Specification and Quantity > 0), and the MaterialUse must be set to "material produced."

6.6 Mapping JobManagement and Result Transfer Variables

For data consistency, the values of the Machinery Job Management and the Result Transfer must also be mapped. Table 24 defines the mapping between the values of the two models in the scope of this specification.

Table 24 – Mapping between JobManagement and Result Transfer
ResultMetaData JobManagementCommentExample
ResultIdNo mapping definedResult_123
StepIdProcessInputDataType.idstrip_left_1_22
PartIdNo mapping definedwire_1234
ProductIdMaterialDefinitionID (of the article)MySAP-Number-123
JobId

JobOrderId

MyJob-100pcs-0.75mm2-blue

6.7 Relevant Elements of ResultDataType

Table 25 – Mandatory fields of ResultMetaDataType
Name Type Description
ResultId0:TrimmedString

System-wide unique identifier, which is assigned by the system. This ID can be used for fetching exactly this result using the method GetResultById and is identical to the ResultId of the ResultReadyEventType.

If the system does not manage ResultIds, it should always be set to “NA.”

StepId0:TrimmedString

Identifies the step which produced the result.

Although the system-wide unique JobId would be sufficient to identify the job which the result belongs to, this makes for easier filtering without keeping track of JobIds.

This specification does not define how the StepId is transmitted to the system. Typically, it is provided by the Client when starting an execution.

PartId0:TrimmedString

Identifies the part used to produce the result.

Although the system-wide unique JobId would be sufficient to identify the job which the result belongs to, this makes for easier filtering without keeping track of JobIds.

This specification does not define how the PartId is transmitted to the system. Typically, it is provided by the Client when starting the job.

ProductId0:TrimmedString

Identifies the product used to produce the result.

This specification does not define how the ProductId is transmitted to the system. Typically, it is provided by the Client.

JobId0:TrimmedString

Identifies the job which produced the result.

This ID is unique within the system and is assigned by the system.

ResultEvaluation6:ResultEvaluationEnumThe ResultEvaluation indicates whether the result was within tolerance.
ProcessingTimes 6:ProcessingTimesDataTypeCollection of different processing times that were needed to create the result.

6.8 Handling of Batches

There are different methods for handling batches in the JobOrderRequest. An order with batches can be managed via separate job orders or through one run for each batch. A run is treated as a JobOrder, but is not included in the workflow.

Example: A custom order should contain 40 articles (4 batches of 10 articles each). This can be managed as either 4 job orders on the machine, each with 10 articles, or as one job order with 10 articles and 4 runs.

6.9 Recommendations for the State Machines

The different state machines from the Machinery Basic Building Blocks and ISA-95 JobManagement work together. In this specification, the recommendations in Table 26 should be followed:

Table 26 – Recommendations for the State Machines
CaseMachineryItemStateMachineryOperationModeJob State Machine
Teach & VerifyAll possibleSetupRunning
Verify Process in a production phaseExecutingProcessingRunning

7 Predefined Job-Order-Input and Job-Order-Response Information

7.1 Overview

ISA95 job control (OPC 10031-4) defines mechanisms to add job order information using the 3:ISA95JobOrderDataType and mechanisms for getting the result or status of the job order using the 3:ISA95JobResponseDataType. Both DataTypes define arrays of properties of a job order: general, personnel, equipment, physical assets, and material. The 3:ISA95JobOrderDataType uses the general properties to describe the job order and the other properties to define the requirements, whereas the 3:ISA95JobResponseDataType uses the general properties to describe the output and the other properties to provide information on what has been used.

OPC 40001-3 (Machinery Job Mgmt) standardizes some of these parameters, which are application-specific from the perspective of OPC 10031-4. This specification gives recommendations for using these parameters and defines additional parameters.

7.2 Relevant Predefined Parameters

The PlannedQuantityOfRuns should not be used. Instead, use Material.Quantity and RunsPlanned.

The PlannedOrderQuantity should not be used. Instead, use Material.Quantity and RunsPlanned.

The predefined 3:JobOrderParameters of OPC 40001-3 in Table 27 should be used if the relevant information is available:

Table 28 provides predefined key-value pairs for 3:JobOrderParameters and 3:JobResponseData, and indicates the data structure in which the key-value pairs are expected to be used. An “X” in “In” indicates that it may be used in 3:JobOrderParameters; an “X” in “Out” indicates that it may be used in 3:JobResponseData.

8 Wire Harness Manufacturing Information Model overview

This section introduces the “OPC UA Information Model for Wire Harness Manufacturing.”

This Information Model provides the necessary ObjectTypes to model a wire harness manufacturing system interface in a structure, as illustrated in Figure 12. There are ObjectTypes that are used to identify the machine tool (WireHarnessIdentificationType), to monitor the machine (ItemState, Operation Mode), to manage the production (JobManagement with PartManagement and ArticleManagement) on the machine, and to transfer results.

Figure 12 – Example Instance for OPC UA Information Model for Wire Harness Machines

The entry point of a Server is an instance of the WireHarnessMachineType. A graphical overview of the WireHarnessMachineType is shown in Figure 13.

Figure 13 – Overview of the WireHarnessMachineType and its children

9 Mapping VEC to OPC UA

9.1 General

This section describes how the VEC model is transformed into OPC UA. This section describes the mapping concept. A complete description of the transformation can be found in the Annex.

9.2 Namespace

The namespace of the generated NodeSet is “http://opcfoundation.org/UA/WireHarness/VEC/”.

9.3 VEC Classes to OPC UA DataTypes

Classes in VEC, declared as uml:Class in the UML model, are transformed into OPC UA DataTypes (UADataType). Abstract classes are assigned the attribute IsAbstract="true."

9.4 VEC Enumerations

Open and closed enumerations are handled as follows:

Closed Enumerations (ClosedEnumeration): These are transformed to the UADataType, with each enumeration included as a field within the definition.

Open Enumerations: These are transformed to the UADataType, with each enumeration included as a field within the definition. An extension as in VEC for Open Enumerations is not used, as this is not necessary in the

environment of the machines.

9.5 Properties and Associations

Simple Attributes: Attributes (ownedAttribute) without associations are defined as field elements in OPC UA.

Compositions and Associations: These are also transformed into field elements. Associations that are not compositions are assigned a string data type to represent References.

Exception: The data type vec:Unit for units has been replaced by the OPC UA data type 0:EUInformation.

9.6 Documentation and Comments

Comments (ownedComment): Comments are transferred as Documentation in OPC UA.

Embedding: Comments are embedded within the elements to which they belong and are output in CDATA format.

9.7 References

If the referenced element has an ID, a corresponding ID-based data structure is used instead of a simple string. If a 1:1 reference exists, the referenced element is directly included rather than being represented as a separate reference.This eliminates unnecessary indirections and ensures that the referenced object is embedded within its parent.

9.8 ID Mechanism:

If a VEC class has an ID, a corresponding IdDataType structure is generated in OPC UA. This IdDataType extends from IdBaseDataType, which acts as an abstract type for all ID-based elements. The IdDataType contains a field id with a TrimmedString. Each VEC class with an ID gets a dedicated UADataType definition for managing identification.

9.9 Excluded UML Stereotypes and Reduced Model

Certain elements from the VEC model are intentionally excluded from the OPC UA transformation to ensure that only relevant data for machine environments is retained. The reason for these exclusions is that many engineering-related data elements are not needed in the machine environment. Machine-oriented OPC UA models focus on runtime-relevant information that is essential for system operation. Engineering-specific metadata (such as design documentation, internal references, or abstract concepts) does not need to be transmitted to the OPC UA-based runtime environment. The filtering ensures that only the essential data structures required for real-time processing are included in the final OPC UA model.

This filtering follows two primary mechanisms:

9.9.1 Exclusion of Specific UML Stereotypes

Some UML stereotypes, such as MagicDraw_Profile:Legend, are explicitly ignored in the transformation. Classes or attributes tagged with these stereotypes are not converted into OPC UA elements.

9.9.2 Whitelist-Based Element Selection

The transformation relies on a whitelist mechanism (<def:class> entries) to determine which classes and attributes are mapped to OPC UA. If a VEC class is not explicitly listed in the whitelist, it is not included in the transformation. This also applies to attributes that are not defined as Field elements in the OPC UA mapping.

10 ObjectTypes

10.1 WireHarnessMachineIdentificationType Type definition

10.1.1 Overview

The WireHarnessMachineIdentificationType provides information about the MachineryItem and is formally defined in Table 29. This is a subtype of the 3:MachineryIdentificationType; the ModellingRule for 2:AssetID has changed.

10.1.2 ObjectType definition

Table 29 – WireHarnessMachineIdentificationType definition
Attribute Value
BrowseName WireHarnessMachineIdentificationType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 4:MachineIdentificationType defined in OPC40001-1; i.e., inherits the InstanceDeclarations of that Node.
HasProperty Variable 2:AssetId String PropertyType Mandatory
Conformance Units
WireHarness WireHarnessMachineIdentificationType

10.2 PartManagementType Type definition

10.2.1 Overview

The PartManagementType contains a list of parts, as well as methods to add and remove parts from the Server. It is formally defined in Table 30.

The system must also be capable of managing local deletions, assuming that parts and articles can be removed from the local database while still existing in a central repository.

In cases of incorrect referencing (e.g., a missing part or article), the server must throw an error.

10.2.2 ObjectType definition

Table 30 – PartManagementType definition
Attribute Value
BrowseName PartManagementType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the BaseObjectType defined in the OPC10000-3; i.e., inherits the InstanceDeclarations of that Node.
HasComponent Method ClearPart Mandatory
HasComponent Variable Terminals 3:ISA95MaterialDataType[] BaseDataVariableType Optional
HasComponent Variable Seals 3:ISA95MaterialDataType[] BaseDataVariableType Optional
HasComponent Variable Sleeves 3:ISA95MaterialDataType[] BaseDataVariableType Optional
HasComponent Variable Wires 3:ISA95MaterialDataType[] BaseDataVariableType Optional
HasComponent Method StorePart Mandatory
HasComponent Method FindPartsByType Optional
Conformance Units
WireHarness PartManagementType

Each Part represents an 3:ISA95MaterialDataType with the Properties shown in Table 15 (VECPartVersion and VECDocumentVersion).

Both Properties (VECPartVersion and VECDocumentVersion) must not provide by the server in the part Lists (Terminals, Seals, Sleeves, Wires) but need to be sent from the client to the server (in the method calls).

The Fields especially of the VECDocumentVersion structure depend on the kind of process and the Part. Table 31 - Table 33 show which fields need to be filled for each Part. The table has four columns. The first column displays the VEC attribute, the second provides an additional commonly used name, followed by a description and an indication of whether the parameter is always required or optional. The VEC attribute can be a direct child of the specification or a child of a subelement; in the latter case, it is separated by a "/".

Wires contain Part information for all wires. Table 31 contains the fields that must be given for this Parameter.

Terminals contain Part information for all terminals. Table 32 contains the fields that must be given for this Parameter.

Seals contain Part information for all seals. Table 33 contains the fields that must be given for this Parameter.

Table 31 – Fields of a Wire
Fields (VEC Attributes)Alternative NameDescription Optional/Mandatory field
WireElementSpecification/WireTypeWireType

Defines the type of the wire. A wire must not have more than one type. This attribute allows more than one value because the same type can be expressed in multiple reference systems.

WireType: Specifies a wire type. A wire type is always defined by a key value. Which wire type is meant by this key value is defined by a standard reference system.

Optional
ConductorSpecification/CrossSectionAreaCrossSectionSpecifies the cross-section area of the conductor (e.g., 0.5 mm²). The cross-section area is a nominal value, which refers to the conducting properties of the conductor normalized to the properties of a full material core.Mandatory
CoreSpecification/OutsideDiameterConductorDiameterSpecifies the outside diameter of the core.Optional
WireElementSpecification/OutsideDiameterIsoDiameterSpecifies the outside diameter of the WireElement. Optional
InsulationSpecification/BaseColorColor_1Specifies the base color of the outer insulation.Optional
InsulationSpecification/FirstIdentificationColorColor_2Specifies the first identification color of the outer insulation.Optional
InsulationSpecification/SecondIdentificationColorColor_3Specifies the second identification color of the outer insulation.Optional
Table 32 – Fields of a Terminal
FieldsAlternative NameDescriptionOptional/Mandatory field
WireReceptionSpecification/CrimpConnectionLengthOverallCrimpingLengthDistance from the conductor tip (in the direction of the center of the wire) to the beginning of the terminal. Specifies the length of the crimp area, conductor, and insulation crimp (wire reception, see diagram "Terminal Dimensions").Optional
TerminalSpecification/OverallLengthOverallTerminalLength

Used to circumnavigate obstacles.

Specifies the overall length the terminal.

Optional
WireReceptionSpecification/CoreCrimpDetails/Size/WidthNominalCrimpWidthDefines the expected size of the crimp. The height is measured in the direction of the crimp opening. The width is measured orthogonal to the height and orthogonal to the main axis of the terminalOptional
WireReceptionSpecification/CoreCrimpDetails/Size/Width/ToleranceNominalCrimpWidthRangeSpecifies the tolerance for the CrimpWidthOptional
GeneralTechnicalPartSpecification/BoundingBox MaximalTerminalWidth

Defines the bounding box of the part.

BoundingBox: The bounding box is defined for the processed state of the component, as it appears in the finished product. Therefore, it is valid to use the bounding box as simplified geometry of the component for viewing or simple DMU operations. For correct 3D positioning, the bounding may require transformation of the coordinate system of the component (see LocalGeometrySpecification.BoundingBoxPositioning).

The bounding box defines the smallest cuboid (box) that can contain a described part completely. If a component has multiple variants, the bounding box is the smallest cuboid that can contain every variant, while maintaining the spatial orientation of the bounding box and component variants.

It is valid to use the BoundingBox to describe the dimensions of a component, even if not all dimensions are known (e.g., only length and width). However, it must be possible to transform such a partial bounding box into a complete bounding box by adding the missing dimensions.

Used to circumnavigate obstacles.

The x,y,z coordinate of the Bouding Box are defined in the Figure 14.

Optional
7:PartVersion/PrimaryPartType TerminalTypeFor display purposes.Optional
WireReceptionSpecification/InsulationDisplacementLengthNominalStrippingLengthSpecifies the length of the insulation which must be stripped off to fit to this wire reception. This overrides stripping parameters such as StripStartPositionOptional
WireReceptionSpecification/InsulationDisplacementLength/ToleranceNominalStrippingLengthRangeSpecifies the tolerance for the dimension.Optional
Table 33 – Fields of a Seal
FieldsAlternative NameDescriptionOptional/Mandatory field
GeneralTechnicalPartSpecification/ColorInformationSealColorSpecifies the color of the part.Optional
GeneralTechnicalPartSpecification/BoundingBoxSealLength /GeometricSealWidthLength of the sealMandatory

10.2.3 StorePart Method

This method is used to add a new Part to a list.

The signature of this Method is specified below. Table 34 and Table 35 specify the Arguments and AddressSpace representation, respectively.

Signature

	StorePart(
	[in]	3:ISA95MaterialDataType	Part);
Table 34 – StorePart Method Arguments
Argument Description
PartInformation about the part.
Table 35 – StorePart Method AddressSpace definition
Attribute Value
BrowseNameStorePart
References NodeClass BrowseName DataType TypeDefinition ModellingRule
0:HasPropertyVariable0:InputArguments0:Argument[] 0:PropertyType0:Mandatory

10.2.4 FindPartsByType Method

This method returns all Parts of a Type.

The signature of this Method is specified below. Table 36 and Table 37 specify the Arguments and AddressSpace representation, respectively.

Signature

	FindPartsByType (
	  [in]	0:NodeId				TypeNodeId,
	  [out]	3:ISA95MaterialDataType[]	Parts);
Table 36 – FindPartsByType Method Arguments
Argument Description
TypeNodeIdNodeId of the list of parts that should be returned. The node must be a subtype of the PartDataType.
Parts

Information about the part.

Table 37 – FindPartsByType Method AddressSpace definition
Attribute Value
BrowseName FindPartsByType
References NodeClass BrowseName DataType TypeDefinition ModellingRule
0:HasPropertyVariable0:InputArguments0:Argument[] 0:PropertyType0:Mandatory
0:HasPropertyVariable0:OutputArguments0:Argument[] 0:PropertyType0:Mandatory

10.2.5 ClearPart Method

Theis method is used to remove a Part from the S.

The signature of this Method is specified below. Table 38 and Table 39 specify the Arguments and AddressSpace representation, respectively.

Note: The Data Integrity described in 4.1.3 must be considered.

Signature

	ClearPart (
	  [in]  3:ISA95MaterialDataType Part);
Table 38 – ClearPart Method Arguments
Argument Description
Part

Information about the part. Either a MaterialClassID, or MaterialDefinitionID must be defined.

Warning: If only the MaterialClassID is used, all entries of a MaterialClass (e.g., all wires) are cleared.

Table 39 – ClearPart Method AddressSpace definition
Attribute Value
BrowseName ClearPart
References NodeClass BrowseName DataType TypeDefinition ModellingRule
0:HasPropertyVariable0:InputArguments0:Argument[] 0:PropertyType0:Mandatory

10.3 ArticleSpecManagementType Type definition

10.3.1 Overview

The ArticleSpecManagementType contains a list of articles and methods to add and remove article specs from the server. It is formally defined in Table 43.

Each Article Spec represents to a 3:ISA95MaterialDataType with the Properties shown in Table 18 (VECPartVersion, VECDocumentVersion and Processes). The table has four columns. The first column displays the VEC attribute, the second provides an additional commonly used name, followed by a description and an indication of whether the parameter is always required or optional. The VEC attribute can be a direct child of the specification or a child of a subelement; in the latter case, it is separated by a "/".

The properties VECPartVersion, VECDocumentVersion and Processes may not be provided by the server in the ArticleList but need to be send from the client to the server (in the method calls). The Values depend on the kind of process and the Part. Table 40 - Table 42 show which fields need to be filled for each process the article spec should describe.

Table 40 – Fields for Cut Process
FieldsAlternative NameDescriptionModelling Rule
WireElementReference/WireLength["Production"]NominalLengthSpecifies the target length of a wire according to the product specifications.Mandatory
Table 41 – Fields for Strip Process
FieldsAlternative NameDescriptionModelling Rule
WireEnd/StrippingLengthStartPosition

Defines the position where insulation will be stripped relative to the WireEnd; e.g., a StripStartPosition of 20 mm means that this WireElementReference is stripped at 20 mm relative to the length of the whole wire, on the side of the defining WireEnd. Note: If a crimping process is to be performed, the NominalStrippingLength takes priority over this StripStartPosition. In other words, the StriptStartPosition is only used when no crimping process is selected.

Note: Use ExtendedWireEnd DataType instead of WireEnd.

Mandatory
WireEndReference to the WireEnd that should be stripped. This also represents information about the layer, as the WireElementReference (to which a WireEnd belongs) is associated with the structure of the wire.Mandatory
Table 42 – Fields for Crimp Process
Fields Alternative Name Description Modelling Rule
ContactingSpecification/ContactPoint/WireMounting/MountedCavitySealHasSealReferences the cavity seal used for the wire mounting.Mandatory
ContactingSpecification/ContactPoint/WireMounting/WireMountingDetail/CoreCrimpSize/HeightNominalCrimpHeightDefines the expected size of the crimp. The height is measured in the direction of the crimp opening. The width is measured orthogonal to the height and orthogonal to the main axis of the terminal.Optional
ContactingSpecification/ContactPoint/WireMounting/WireMountingDetail/CoreCrimpSize/WidthNominalCrimpWidthDefines the expected size of the crimp. The height is measured in the direction of the crimp opening. The width is measured orthogonal to the height and orthogonal to the main axis of the terminal.Optional
ContactingSpecification/ContactPoint/WireMounting/WireMountingDetail/CoreCrimpSize/Height/ToleranceNominalCrimpHeightToleranceSpecifies the tolerance for the dimension.Optional
ContactingSpecification/ContactPoint/WireMounting/WireMountingDetail/CoreCrimpSize/Width/ToleranceNominalCrimpWidthToleranceSpecifies the tolerance for the dimension.Optional
ContactingSpecification/ContactPoint/WireMounting/WireMountingDetail/InsulationCrimpSize/HeightNominalInsulationCrimpHeightDefines the expected size of the crimp. The height is measured in the direction of the crimp opening. The width is measured orthogonal to the height and orthogonal to the main axis of the terminalOptional
ContactingSpecification/ContactPoint/WireMounting/WireMountingDetail/InsulationCrimpSize/Height/ToleranceNominalInsulationCrimpHeightToleranceSpecifies the tolerance for the dimension.Optional
ContactingSpecification/ContactPoint/WireMounting/WireMountingDetail/ InsulationCrimpSize/WidthNominalInsulationCrimpWidthDefines the expected size of the crimp. The height is measured in the direction of the crimp opening. The width is measured orthogonal to the height and orthogonal to the main axis of the terminalOptional
ContactingSpecification/ContactPoint/WireMounting/WireMountingDetail/InsulationCrimpSize/Width/ToleranceNominalInsulationCrimpWidthToleranceSpecifies the tolerance for the dimension.Optional
ContactingSpecification/ContactPoint/WireMounting/WireMountingDetail/WireTipProtrusionWireTipProtrusionRangeDefines the valid length range in which the protrusion of the conductor from the conductor crimp must be located.Optional

10.3.2 ObjectType definition

Table 43 – ArticleSpecManagementType definition
Attribute Value
BrowseName ArticleSpecManagementType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-3; i.e., inherits the InstanceDeclarations of that Node.
HasComponent Variable ArticleSpecList 3:ISA95MaterialDataType[] BaseDataVariableType Mandatory
HasComponent Method ClearArticleSpec Mandatory
HasComponent Method StoreArticleSpec Mandatory
Conformance Units
WireHarness ArticleManagementType

ArticleSpecList contains a list of all article specs known by the Server.

10.3.3 StoreArticleSpec Method

This method is used to add a new article to a list.

The signature of this Method is specified below. Table 44 and Table 45 specify the Arguments and AddressSpace representation, respectively.

Note: The data integrity described in 4.1.3 must be considered.

Signature

	StoreArticleSpec(
	  [in]  3:ISA95MaterialDataType ArticleSpec);
Table 44 – StoreArticleSpec Method Arguments
Argument Description
ArticleSpecInformation about the article. The Parameter of Table 17 (VECPartVersion, VECDocumentVersion and Processes) needed be filled.
Table 45 – StoreArticleSpec Method AddressSpace definition
Attribute Value
BrowseNameStoreArticleSpec
References NodeClass BrowseName DataType TypeDefinition ModellingRule
0:HasPropertyVariable0:InputArguments0:Argument[] 0:PropertyType0:Mandatory

10.3.4 ClearArticle Method

The method is used remove an article from the server.

The signature of this Method is specified below. Table 46 and Table 47 specify the Arguments and AddressSpace representation, respectively.

Note: The Data Integrity described in 4.1.3 must be considered.

Signature

	ClearArticleSpec (
	[in]	3:ISA95MaterialDataType	ArticleSpec);
Table 46 – ClearArticleSpec Method Arguments
Argument Description
ArticleSpec

Information about the article. Either MaterialClassID or MaterialDefinitionID,must be defined.

Warning: If only the MaterialClassID is used, all entries of a MaterialClass (e.g., all wires) are cleared.

Table 47 – ClearArticleSpec Method AddressSpace definition
Attribute Value
BrowseName ClearArticleSpec
References NodeClass BrowseName DataType TypeDefinition ModellingRule
0:HasPropertyVariable0:InputArguments0:Argument[] 0:PropertyType0:Mandatory

10.4 WireHarnessMachineType Type definition

10.4.1 Overview

The WireHarnessMachineType represents the entire wire harness machine interface of the information model. It is the entry point to the OPC UA interface of a wire harness machine. It gives a basic structure to the interface. An instance of this type aggregates all information related to one wire harness machine. The WireHarnessMachineType is formally defined in Table 48.

10.4.2 ObjectType definition

Table 48 – WireHarnessMachineType definition
Attribute Value
BrowseName WireHarnessMachineType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-3; i.e., inherits the InstanceDeclarations of that Node.
HasComponent Object ArticleSpecManagement ArticleSpecManagementType Optional
HasComponent Object PartManagement PartManagementType Optional
HasAddIn Object 2:Identification WireHarnessMachineIdentificationType Mandatory
HasComponent Object 4:MachineryBuildingBlocks 0:FolderType Mandatory
HasAddIn Object 4:Components 4:MachineComponentsType Optional
Conformance Units
WireHarness WireHarnessMachineType

4:Identification provides properties to identify a Device.

4:Components contains the details of all components of the machine. See OPC 40001-1 for more information.

PartManagement contains the part list and the method to manage this list.

ArticleSpecManagement contains the article list and the method to manage this list.

MachineryBuildingBlocks are used as described in OPC 40001-1. This Companion Specification uses the following building blocks:

JobManagement

MachineryItemState

MachineryOperationMode

Components

ResultManagement

The components of the WireHarnessMachineType have additional subcomponents, which are defined in Table 49. The methods 5:Store, 5:Start, 5:Clear, 5:Abort are mandatory.

Note: The data integrity described in 4.1.3 must be considered, especially with the 5:Store method.

Table 49 – WireHarnessMachineType additional subcomponents
BrowsePath References NodeClass BrowseName DataType TypeDefinition Others
4:MachineryBuildingBlocks0:HasAddInObject4:MachineryItemState4:MachineryItemState_StateMachineTypeM
4:MachineryBuildingBlocks0:HasAddInObject5:JobManagement5:JobManagementTypeM
4:MachineryBuildingBlocks0:HasAddInObject6:ResultManagement6:ResultManagementTypeO
4:MachineryBuildingBlocks0:HasAddInObject2:OperationCounters4:MachineryOperationCounterTypeO
0:HasComponentMethod3:StoreM
0:HasComponentMethod3:ClearM
0:HasComponentMethod3:StartM

0:HasComponentMethod3:AbortM

11 OPC UA EventTypes

11.1 ProductFinishedEventType

This ProductFinishedEventType is send if a Product is finished.

Its representation in the AddressSpace is formally defined in Table 50.

Table 50 – ProductFinishedEventType definition
Attribute Value
BrowseNameProductFinishedEventType
IsAbstractTrue
References NodeClass BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseEventType defined in OPC 10000-3, which means it inherits the InstanceDeclarations of that Node.
0:HasPropertyVariableJobOrderID0:String0:PropertyType0:Mandatory
0:HasPropertyVariableMaterialDefinitionID0:String0:PropertyType0:Mandatory
0:HasPropertyVariableProductID0:String0:PropertyType0:Mandatory
0:HasPropertyVariableResultIDs0:TrimmedString[]0:PropertyType0:Mandatory
0:HasPropertyVariableRun0:UInt320:PropertyType0:Mandatory
0:HasPropertyVariableStartTime0:DateTime0:PropertyType0:Mandatory
0:HasPropertyVariableEndTime0:DateTime0:PropertyType0:Mandatory
0:HasPropertyVariableState5:JobResult0:PropertyType0:Mandatory
Conformance Units
WireHarness ProductFinishedEventType

JobOrderID contains the unique identifier of the production order that controls the manufacturing process.

MaterialDefinitionID contains the identifier for the material or material class used in the production process.

ProductID contains the unique identifier of the produced product.

ResultIDs contains the list of result identifiers related to quality or process data from production.

Run contains the specific execution instance of a job.

StartTime contains the timestamp when the production run or process started.

EndTime contains the timestamp when the production run or process finished

11.2 RunCompleteEventType

This RunCompleteEventType is send if a Run (a set of Products) is finished.

Its representation in the AddressSpace is formally defined in Table 50.

Table 51 – RunCompleteEventType definition
Attribute Value
BrowseNameRunCompleteEventType
IsAbstractTrue
References NodeClass BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseEventType defined in OPC 10000-3., which means it inherits the InstanceDeclarations of that Node.
0:HasPropertyVariableEndTime0:DateTime0:PropertyType0:Mandatory
0:HasPropertyVariableGoodQuantity0:Double0:PropertyType0:Mandatory
0:HasPropertyVariableJobOrderID0:String0:PropertyType0:Mandatory
0:HasPropertyVariableProducedQuantity0:Double0:PropertyType0:Mandatory
0:HasPropertyVariableProductIDs0:String[]0:PropertyType0:Mandatory
0:HasPropertyVariableRun0:UInt320:PropertyType0:Mandatory
0:HasPropertyVariableStartTime0:DateTime0:PropertyType0:Mandatory
Conformance Units
WireHarness RunCompleteEventType

EndTime contains the timestamp when the production run or process finished.

GoodQuantity contains the number of produced units that meet quality requirements.

JobOrderID contains the unique identifier of the production order that controls the manufacturing process

ProducedQuantity contains the total number of produced units, including both good and defective ones.

ProductIDs contains the unique identifiers of the produced products.

Run contains the specific execution instance of a job

StartTime contains the timestamp when the production run or process started.

12 Wire Harness Manufacturing OPC UA DataTypes

12.1 Process related DataTypes

12.1.1 Overview

This section contains all DataTypes related to a process.

12.1.2 ProcessInputDataType

This structure contains information that is needed for all processes. Subtypes may add process-specific fields. The structure is defined in Table 52.

Table 52 – ProcessInputDataType Structure (with field that allows subtypes)
NameTypeDescriptionAllow
Subtypes
ProcessInputDataTypestructureSubtype of 0:Structure defined in OPC 10000-3.

ToolType

0:String[1]Indicates the ideal process module or the preferred tool (e.g., the part version). False

ProcessDescription

0:String[1]A detailed explanation of the process, outlining its purpose, scope, and implementation steps. False

id

0:TrimmedStringA unique identifier for the process, used for tracking and reference purposes. False

Its representation in the AddressSpace is defined in Table 53.

Table 53 – ProcessInputDataType definition
Attribute Value
BrowseName ProcessInputDataType
IsAbstract True
References NodeClass BrowseName DataType TypeDefinition Other
Subtype of the 0:Structure defined in OPC 10000-3.
Conformance Units
WireHarness ProcessInputType

12.1.3 CrimpInputDataType

This structure contains information needed for the crimping process. The structure is defined in Table 54.

Table 54 – CrimpInputDataType Structure (with field that allows subtypes)
NameTypeDescriptionAllow
Subtypes
CrimpInputDataTypestructureSubtype of ProcessInputDataType defined in this specification.

ReferencedElement 

7:WireMountingIdDataTypeReferences the product element for which this process is defined. False

VerifyCrimpHeight

0:Boolean[1] If set, the NominalCrimpHeight must be measured and returned during the verify and learn process, and the ActualCrimpHeight will be sent back. False

VerifyCrimpWidth

0:Boolean[1]If set, the NominalCrimpWidth must be measured and returned during the verify and learn process, and the ActualCrimpWidth will be sent back. False

VerifyInsulationCrimpHeight

0:Boolean[1]If set, the NominalInsulationCrimpHeight must be measured and returned during the verify and learn process, and the ActualInsulationCrimpHeight will be sent back. False

VerifyInsulationCrimpWidth

0:Boolean[1]If set, the NominalInsulationCrimpWidth must be measured and returned during the verify and learn process, and the ActualInsulationCrimpWidth will be sent back. False

VerifyPullOutForce

0:Boolean[1]If set, the PullOutForce must be measured and will be sent back. False

CrimpForceMonitoring

0:Boolean[1]If set, the CrimpForce is monitored. False

Its representation in the AddressSpace is defined in Table 55.

Table 55 – CrimpInputDataType definition
Attribute Value
BrowseName CrimpInputDataType
IsAbstractFalse
References NodeClass BrowseName DataType TypeDefinition Other
Subtype of the ProcessInputDataType defined in this specification.
Conformance Units
WireHarness CrimpInputDataType

12.1.4 CutInputDataType

This structure contains information needed for the cut process. The structure is defined in Table 56.

Table 56 – CutInputDataType Structure (with field that allows subtypes)
NameTypeDescriptionAllow
Subtypes
CutInputDataTypestructureSubtype of ProcessInputDataType defined in this specification.

ReferencedElement 

7:WireElementReferenceIdDataTypeReferences the product element for which this process is defined. False

VerifyWireLength

0:Boolean[1]The operator must verify the length of the wire False

Its representation in the AddressSpace is defined in Table 57.

Table 57 – CutInputDataType definition
Attribute Value
BrowseName CutInputDataType
IsAbstractFalse
References NodeClass BrowseName DataType TypeDefinition Other
Subtype of the ProcessInputDataType defined in this specification.
Conformance Units
WireHarness CutInputDataType

12.1.5 SealInputDataType

This structure contains information needed for the seal process. The structure is defined in Table 58.

Table 58 – SealInputDataType Structure (with field that allows subtypes)
NameTypeDescriptionAllow
Subtypes
SealInputDataTypestructureSubtype of ProcessInputDataType defined in this specification.

ReferencedElement 

7:WireMountingIdDataTypeReferences the product element for which this process is defined. False

MonitorSealPosition

0:Boolean[1]Triggers if the position should be monitored and the result returned. False

Its representation in the AddressSpace is defined in Table 59.

Table 59 – SealInputDataType definition
Attribute Value
BrowseName SealInputDataType
IsAbstractFalse
References NodeClass BrowseName DataType TypeDefinition Other
Subtype of the ProcessInputDataType defined in this specification.
Conformance Units
WireHarness SealInputDataType

12.1.6 StripInputDataType

This structure contains information needed for the strip process. The structure is defined in Table 60.

Table 60 – StripInputDataType Structure (with field that allows subtypes)
NameTypeDescriptionOptional
StripInputDataTypestructureSubtype of ProcessInputDataType defined in this specification.

ReferencedElement 

7:WireEndIdDataTypeReferences the product element for which this process is defined. False

StrippingLengthMonitoring

0:Boolean[1]The operator must monitor the length of the strip. False

Its representation in the AddressSpace is defined in Table 61.

Table 61 – StripInputDataType definition
Attribute Value
BrowseName StripInputDataType
IsAbstractFalse
References NodeClass BrowseName DataType TypeDefinition Other
Subtype of the ProcessInputDataType defined in this specification.
Conformance Units
WireHarness StripInputDataType

12.2 Process result related DataTypes

12.2.1 Overview

This section contains all DataTypes related to a Part.

12.2.2 ProcessOutputDataType

This structure contains general result information for a process. Subtypes can add additional fields for process-specific output. This type can also be used by processes with no process-specific output. The structure is defined in Table 62.

The subtypes of the ProcessOutputDataType are used in the ResultData field of the ResultDataType.

If the ProcessOutputDataType (or a subtype of it) is used in the context of the ResultDataType, the ResultEvaluation must be used for the overall result.

Table 62 – ProcessOutputDataType Structure
NameTypeDescriptionAllow
Subtypes
ProcessOutputDataTypestructureSubtype of the 0:Structure defined in OPC 10000-3.

ToolInstance

StringThe actual serial number of the process module or tool (process module or tool), identifying the specific equipment used in the process. False

Its representation in the AddressSpace is defined in Table 63.

Table 63 – ProcessOutputDataType definition
Attribute Value
BrowseName ProcessOutputDataType
IsAbstractFalse
References NodeClass BrowseName DataType TypeDefinition Other
Subtype of the 0:Structure defined in OPC 10000-3.
Conformance Units
WireHarness ProcessOutputType

12.2.3 ForceCurvePointDataType

This structure provides a data point for a curve. The structure is defined in Table 66.

Note: This DataTypes is simillar tot he XVType but use only UInt32 for smaller memory storage

Table 64 – ForceCurvePointDataType Structure (with field that allows subtypes)
NameTypeDescriptionOptional
ForceCurvePointDataTypestructureSubtype of the 0:Structure defined in OPC 10000-3.

X

0:UInt32[]Position on the X axis of this value False

Value

0:UInt32[]The value itself False

Its representation in the AddressSpace is defined in Table 67.

Table 65 – ForceCurveDataType definition
Attribute Value
BrowseName ForceCurvePointDataType
IsAbstractFalse
References NodeClass BrowseName DataType TypeDefinition Other
Subtype of the 0:Structure defined in OPC 10000-3.
Conformance Units
WireHarness CrimpOutputDataType

12.2.4 ForceCurveDataType

This structure provides data for a curve. The structure is defined in Table 66.

Table 66 – ForceCurveDataType Structure (with field that allows subtypes)
NameTypeDescriptionOptional
ForceCurveDataTypestructureSubtype of the 0:Structure defined in OPC 10000-3.

Points

ForceCurvePointDataType[]Contains the points of the curve. False

EngineeringUnitsX

EUInformationContains the units of the x axis False

EngineeringUnitsValue

EUInformationContains the units of the value axis False

Its representation in the AddressSpace is defined in Table 67.

Table 67 – ForceCurveDataType definition
Attribute Value
BrowseName ForceCurveDataType
IsAbstractFalse
References NodeClass BrowseName DataType TypeDefinition Other
Subtype of the 0:Structure defined in OPC 10000-3.
Conformance Units
WireHarness CrimpOutputDataType

12.2.5 CrimpOutputDataType

This structure contains generated result information from the crimp process. The structure is defined in Table 68.

Table 68 – CrimpOutputDataType Structure
NameTypeDescriptionAllow
Subtypes
CrimpOutputDataTypestructureSubtype of ProcessOutputDataType defined in this specification.

ActualCrimpHeight

7:NumericalValue[1]Measured value of the crimp height. False

ActualCrimpWidth

7:NumericalValue[1]Measured value of the crimp width. False

ActualInsulationCrimpHeight

7:NumericalValue[1]Measured insulation crimp height. False

ActualCrimpForceCurve

ForceCurveDataType[1]The actual crimp force curve for each crimp process. The NominalCrimp curve is sent back during the learning process. False

ActualCrimpPullOutForce

7:NumericalValue[1]During the learning process, a reference wire will be measured using a destructive test and this value is assumed for the entire job. False

Its representation in the AddressSpace is defined in Table 69.

Table 69 – CrimpOutputDataType definition
Attribute Value
BrowseName CrimpOutputDataType
IsAbstract False
References NodeClass BrowseName DataType TypeDefinition Other
Subtype of the ProcessOutputDataType defined in this specification.
Conformance Units
WireHarness CrimpOutputDataType

12.2.6 CutOutputDataType

This structure contains generated result information from the cut process. The structure is defined in Table 70.

Table 70 – CutOutputDataType Structure (with field that allows subtypes)
NameTypeDescriptionAllow
Subtypes
CutOutputDataTypestructureSubtype of CutOutputDataType defined in this specification.

ActualLength

7:NumericalValue[1]The actual length of the wire. False

Its representation in the AddressSpace is defined in Table 71.

Table 71 – CutOutputDataType definition
Attribute Value
BrowseName CutOutputDataType
IsAbstract False
References NodeClass BrowseName DataType TypeDefinition Other
Subtype of the ProcessOutputDataType defined in this specification.
Conformance Units
WireHarness CutProcessOutputType

12.2.7 SealOutputDataType

This structure contains generated result information from the seal process. The structure is defined in Table 72.

Table 72 – SealOutputDataType Structure (with field that allows subtypes)
NameTypeDescriptionAllow
Subtypes
SealOutputDataTypestructureSubtype of ProcessOutputDataType defined in this specification.

ActualPosition

7:NumericalValue[1]Actual seal position, relative to the cable tip.False

Its representation in the AddressSpace is defined in Table 73.

Table 73 – SealOutputDataType definition
Attribute Value
BrowseName SealOutputDataType
IsAbstract False
References NodeClass BrowseName DataType TypeDefinition Other
Subtype of the ProcessOutputDataType defined in this specification.
Conformance Units
WireHarness SealOutputDataType

12.2.8 StripOutputDataType

This structure contains generated result information from the strip process. The structure is defined in Table 74.

Table 74 – StripOutputDataType Structure (with field that allows subtypes)
NameTypeDescriptionAllow
Subtypes
StripOutputDataTypestructureSubtype of ProcessOutputDataType defined in this specification.

ActualStrippingLength

7:NumericalValue[1]Denotes the length of the wire that has been stripped. This measurement is crucial for subsequent processes and serves as a redundant definition used as an input parameter for strip monitoring processes. False

Its representation in the AddressSpace is defined in Table 75.

Table 75 – StripOutputDataType definition
Attribute Value
BrowseName StripOutputDataType
IsAbstract False
References NodeClass BrowseName DataType TypeDefinition Other
Subtype of the ProcessOutputDataType defined in this specification.
Conformance Units
WireHarness StripOutputDataType

13 Profiles and ConformanceUnits

13.1 Conformance Units

This chapter defines the corresponding Conformance Units for the OPC UA Information Model for Wire Harness Manufacturing.

Table 76 – Conformance Units for WireHarness Manufacturing
Category Title Description
ServerWireHarness WireHarnessMachineTypeThe Server supports nodes that conform to the (subtypes of) WireHarnessMachineType. The WireHarnessMachineType node itself is available in the AddressSpace. Every instance of the (subtypes of) WireHarnessMachineType must include all mandatory components of the WireHarnessMachineType and may include the optional components.
ServerWireHarness WireHarnessMachineIdentificationTypeThe Server supports nodes that conform to the (subtypes of) WireHarnessMachineIdentificationType. The WireHarnessMachineIdentificationType node itself is available in the AddressSpace. Every instance of the (subtypes of) WireHarnessMachineIdentificationType must include all mandatory components of the WireHarnessMachineIdentificationType and may include the optional components.
ServerWireHarness PartManagementTypeThe Server supports nodes that conform to the (subtypes of) PartManagementType. The PartManagementType node itself is available in the AddressSpace. Every instance of the (subtypes of) PartManagementType must include all mandatory components of the PartManagementType and may include the optional components.
ServerWireHarness ArticleSpecManagementTypeThe Server supports nodes that conform to the (subtypes of) ArticleSpecManagementType. The ArticleSpecManagementType node itself is available in the AddressSpace. Every instance of the (subtypes of) ArticleSpecManagementType must include all mandatory components of the ArticleSpecManagementType and may include the optional components.
ServerWireHarness PartManagementType StorePart method Supports the handling of the StorePart method of the PartManagementType as described in this specification.
ServerWireHarness PartManagementType ClearPart method Supports the handling of the ClearPart method of the PartManagementType as described in this specification.
ServerWireHarness ArticleSpecManagementType StoreArticleSpec method Supports the handling of the StoreArticleSpec method of the ArticleSpecManagementType as described in this specification.
ServerWireHarness ArticleSpecManagementType ClearArticleSpec method Supports the handling of the ClearArticleSpec method of the ArticleSpecManagementType as described in this specification.
ServerWireHarness PartManagementType FindPartsByType method Supports the handling of the FindPartsByType method of the PartManagementType as described in this specification.
ServerWireHarness Part TerminalSupports the handling of Terminal parts in PartManagement (if implemented) and JobManagement. This includes all fields described in Table 32.
ServerWireHarness Part Seal

Supports the handling of Seal parts in PartManagement (if implemented) and JobManagement. This includes all fields described in

ServerWireHarness Part WireSupports the handling of Wire parts in PartManagement (if implemented) and JobManagement. This includes all fields described in Table 31.
ServerWireHarness ProductFinishedEventType

Exposes the ProductFinishedEventType and all its supertypes in the AddressSpace.

Supports at least one instance of the 5:JobManagementType generating Events of ProductFinishedEventType.

ServerWireHarness RunCompleteEventType

Exposes the RunCompleteEventType and all its supertypes in the AddressSpace.

Supports at least one instance of the 5:JobManagementType generating Events of RunCompleteEventType.

ServerWireHarness Article CrimpSupports the handling of the Crimp process in the article spec in ArticleSpecManagement (if implemented) and JobManagement. This includes all fields described in Table 42.
ServerWireHarness Article CutSupports the handling of the Cut process in the article spec in ArticleSpecManagement (if implemented) and JobManagement. This includes all fields described in Table 40.
ServerWireHarness Article StripSupports the handling of the Strip process in the article spec in ArticleSpecManagement (if implemented) and JobManagement. This includes all fields described in Table 41.
ServerWireHarness Process Input The Server supports variables that conform to the (subtypes of) ProcessInputType. The ProcessInputType node itself is available in the AddressSpace.
ServerWireHarness Process Input CrimpThe Server supports variables that conform to the (subtypes of) CrimpInputDataType. The CrimpInputDataType node itself is available in the AddressSpace. The ArticleSpec can contain Parameters of this type.
ServerWireHarness Process Input CutThe Server supports variables that conform to the (subtypes of) CutInputDataType. The CutInputDataType node itself is available in the AddressSpace. The ArticleSpec can contain Parameters of this type.
ServerWireHarness Process Input StripThe Server supports variables that conform to the (subtypes of) StripInputDataType. The StripInputDataType node itself is available in the AddressSpace. The ArticleSpec can contain Parameters of this type.
ServerWireHarness Process Input SealThe Server supports variables that conform to the (subtypes of) SealInputDataType. The SealnputDataType node itself is available in the AddressSpace. The ArticleSpec can contain Parameters of this type.
ServerWireHarness Process Output The Server supports variables that conform to the (subtypes of) ProcessOutputType. The ProcessOutputType node itself is available in the AddressSpace.
ServerWireHarness Process Output CrimpThe Server supports variables that conform to the (subtypes of) CrimpOutputType. The CrimpOutputDataType node itself is available in the AddressSpace. The ArticleSpec can contain Parameters of this type.
ServerWireHarness Process Output CutThe Server supports variables that conform to the (subtypes of) CutOutputType. The CutOutputDataType node itself is available in the AddressSpace. The ArticleSpec can contain Parameters of this type.
ServerWireHarness Process Output StripThe Server supports variables that conform to the (subtypes of) StripOutputDataType. The StripOutputDataType node itself is available in the AddressSpace. The ArticleSpec can contain Parameters of this type.
ServerWireHarness Process Output SealThe Server supports variables that conform to the (subtypes of) SealOutputDataType. The SealOutputDataType node itself is available in the AddressSpace. The ArticleSpec can contain Parameters of this type.

13.2 Profiles

13.2.1 Profile list

Table 77 lists all Profiles defined in this document and defines their URIs.

Table 77 – Profile URIs for WireHarness
Profile URI
WireHarness BaseServer Server Profilehttp://opcfoundation.org/UA-Profile/WireHarness/Server/BaseServer
WireHarness Result Server Profilehttp://opcfoundation.org/UA-Profile/WireHarness/Server/Result
WireHarness Crimp Server Profilehttp://opcfoundation.org/UA-Profile/WireHarness/Server/Crimp
WireHarness Cut Server Profilehttp://opcfoundation.org/UA-Profile/WireHarness/Server/Cut
WireHarness Strip Server Profile http://opcfoundation.org/UA-Profile/WireHarness/Server/Strip
WireHarness Seal Server Profilehttp://opcfoundation.org/UA-Profile/WireHarness/Server/Seal

13.2.2 Server Facets

13.2.2.1 Overview

The following sections specify the Facets available for Servers that implement this Wire Harness Companion Specification. Each section defines and describes a Facet or Profile.

13.2.2.2 WireHarness BaseServer Server Profile

Table 78 defines a Profile that describes the base profile of a wire harness machine.

Table 78 – WireHarness BaseServer Server Profile
Group Conformance Unit/Profile Title Mandatory / Optional
Profile0:Core 2022 Server Facet
http://opcfoundation.org/UA-Profile/Server/Core2022Facet
Profile0:UA-TCP UA-SC UA Binary
http://opcfoundation.org/UA-Profile/Transport/uatcp-uasc-uabinary
Profile0:Data Access Server Facet
http://opcfoundation.org/UA-Profile/Server/DataAccess
Profile2:BaseDevice_Server_Facet
Profile3:Machinery Job Management Base Server Facet
Profile3:Machinery Machine Identification Server Facet
Profile3:Machinery Component Identification Server Facet
Profile3:Machinery State Server Facet
Profile3:Machinery Operation Counter Server Facet
Conformance UnitWireHarness WireHarnessMachineTypeM
Conformance UnitWireHarness WireHarnessMachineIdentificationTypeM
Conformance UnitWireHarness PartManagementTypeO
Conformance UnitWireHarness ArticleSpecManagementTypeO
Conformance UnitWireHarness WireHarnessJobOrderReceiverSubStatesTypeM
Conformance UnitWireHarness PartManagementType StorePart methodO
Conformance UnitWireHarness PartManagementType ClearPart methodO
Conformance UnitWireHarness PartManagementType FindPartsByType methodO
13.2.2.3 WireHarness Result Server Profile

Table 79defines a Profile that describes the base profile of a wire harness machine extended with the Machinery Result Tansfer.

Table 79 – WireHarness Result Server Profile
Group Conformance Unit/Profile Title Mandatory / Optional
ProfileWireHarness BaseServer Server Profile
Profile3:Machinery-Result Result Transfer
13.2.2.4 WireHarness Crimp Server Profile

Table 80 defines a Profile that describes the base profile of a wire harness machine with a crimp process.

Table 80 – WireHarness Crimp Server Profile
Group Conformance Unit/Profile Title Mandatory / Optional
ProfileWireHarness BaseServer Server ProfileM
Conformance UnitWireHarness Part TerminalM
Conformance UnitWireHarness Part WireM
Conformance UnitWireHarness Article CrimpM
Conformance UnitWireHarness Process Input M
Conformance UnitWireHarness Process Input CrimpM
Conformance UnitWireHarness Process Output M
Conformance UnitWireHarness Process Output CrimpM
13.2.2.5 WireHarness Cut Server Profile

Table 81 defines a Profile that describes the base profile of a wire harness machine with a cut process.

Table 81 – WireHarness Cut Server Profile
Group Conformance Unit/Profile Title Mandatory / Optional
ProfileWireHarness BaseServer Server ProfileM
Conformance UnitWireHarness Part WireM
Conformance UnitWireHarness Article CutM
Conformance UnitWireHarness Process Input M
Conformance UnitWireHarness Process Input CutM
Conformance UnitWireHarness Process Output M
Conformance UnitWireHarness Process Output CutM
13.2.2.6 WireHarness Strip Server Profile

Table 82 defines a Profile that describes the base profile of a wire harness machine with a strip process.

Table 82 – WireHarness Strip Server Profile
Group Conformance Unit/Profile Title Mandatory / Optional
ProfileWireHarness BaseServer Server ProfileM
Conformance UnitWireHarness Part WireM
Conformance UnitWireHarness Article StripM
Conformance UnitWireHarness Process Input M
Conformance UnitWireHarness Process Input StripM
Conformance UnitWireHarness Process Output M
Conformance UnitWireHarness Process Output StripM
13.2.2.7 WireHarness Strip Server Profile

Table 83 defines a Profile that describes the base profile of a wire harness machine with a seal process.

Table 83 – WireHarness Seal Server Profile
Group Conformance Unit/Profile Title Mandatory / Optional
ProfileWireHarness BaseServer Server ProfileM
Conformance UnitWireHarness Part WireM
Conformance UnitWireHarness Article SealM
Conformance UnitWireHarness Process Input M
Conformance UnitWireHarness Process Input SealM
Conformance UnitWireHarness Process Output M
Conformance UnitWireHarness Process Output SealM

14 Namespaces

14.1 Namespace Metadata

Table 94 and Table 85 define the namespace metadata for this document. Objects are used to provide version information for the namespace and an indication about static Nodes. Static Nodes are identical for all Attributes in all Servers, including the Value Attribute. See OPC 10000-5 for more details.

The information is provided as an Object of type NamespaceMetadataType. This Object is a component of the Namespaces Object that is part of the Server Object. The NamespaceMetadataType ObjectType and its Properties are defined in OPC 10000-5.

Version information is also provided as part of the ModelTableEntry in the UANodeSet XML file. The UANodeSet XML schema is defined in OPC 10000-6.

Table 84 – WireHarness NamespaceMetadata Object for this document
Attribute Value
BrowseNamehttp://opcfoundation.org/UA/WireHarness/
Property DataType Value
NamespaceUriStringhttp://opcfoundation.org/UA/WireHarness/
NamespaceVersionString1.0.0
NamespacePublicationDateDateTime2025-04-01
IsNamespaceSubsetBooleanFalse
StaticNodeIdTypesIdType []0
StaticNumericNodeIdRangeNumericRange []
StaticStringNodeIdPatternString
Table 85 – VEC NamespaceMetadata Object for this document
Attribute Value
BrowseName7:http://opcfoundation.org/UA/WireHarness/VEC/
Property DataType Value
NamespaceUriStringhttp://opcfoundation.org/UA/WireHarness/VEC/
NamespaceVersionString1.0.0
NamespacePublicationDateDateTime2025-04-01
IsNamespaceSubsetBooleanFalse
StaticNodeIdTypesIdType []0
StaticNumericNodeIdRangeNumericRange []
StaticStringNodeIdPatternString

Note: The IsNamespaceSubset Property is set to False, as the UaNodeSet XML file contains the complete Namespace. Servers only exposing a subset of the Namespace need to change the value to True.

14.2 Handling of OPC UA Namespaces

Namespaces are used by OPC UA to create unique identifiers across different naming authorities. The Attributes NodeId and BrowseName are identifiers. A Node in the UA AddressSpace is unambiguously identified using a NodeId. Unlike NodeIds, the BrowseName cannot be used to unambiguously identify a Node. Different Nodes may have the same BrowseName. They are used to build a browse path between two Nodes or to define a standard Property.

Servers may often choose to use the same namespace for the NodeId and the BrowseName. However, if they want to provide a standard Property, its BrowseName shall have the namespace of the standards body although the namespace of the NodeId reflects something else, for example the EngineeringUnits Property. All NodeIds of Nodes not defined in this document shall not use the standard namespaces.

Table 86 provides a list of mandatory and optional namespaces used in an OPC UA WireHarness Server.

Table 86 – Namespaces used in a WireHarness Server
NamespaceURI Description Use
http://opcfoundation.org/UA/Namespace for NodeIds and BrowseNames defined in the OPC UA specification. This namespace shall have namespace index 0.Mandatory
Local Server URINamespace for nodes defined in the local server. This namespace shall have namespace index 1.Mandatory
http://opcfoundation.org/UA/DI/Namespace for NodeIds and BrowseNames defined in OPC 10000-100. The namespace index is Server specific.Mandatory
http://opcfoundation.org/UA/ISA95-JOBCONTROL_V2/Namespace for NodeIds and BrowseNames defined in OPC UA for ISA95 Job Control (OPC UA 10031-4). The namespace index is Server specific.Mandatory
http://opcfoundation.org/UA/Machinery/Namespace for NodeIds and BrowseNames defined in OPC UA for Machinery (OPC UA 40001-1). The namespace index is Server specific.Mandatory
http://opcfoundation.org/UA/Machinery/Jobs/Namespace for NodeIds and BrowseNames defined in OPC UA for Machinery (OPC UA 40001-3). The namespace index is Server specific.Mandatory
http://opcfoundation.org/UA/Machinery/Result/Namespace for NodeIds and BrowseNames defined in OPC UA for Machinery (OPC UA 40001-101). The namespace index is Server specific.Mandatory
http://opcfoundation.org/UA/Machinery/WireHarness/VEC/Namespace for NodeIds and BrowseNames defined in this specification. The namespace index is Server specific.Mandatory
http://opcfoundation.org/UA/Machinery/WireHarness/Namespace for NodeIds and BrowseNames defined in this specification. The namespace index is Server specific.Mandatory
Vendor-specific typesA Server may provide vendor-specific types, such as types derived from ObjectTypes defined in this document in a vendor-specific namespace.Optional
Vendor-specific instances

A Server provides vendor-specific instances of the standard types, or vendor-specific instances of vendor-specific types in a vendor-specific namespace.

It is recommended to separate vendor-specific types and vendor-specific instances into two or more namespaces.

Mandatory

Table 87 provides a list of namespaces and their indices used for BrowseNames in this document. The default namespace of this document is not listed, since all BrowseNames without prefix use this default namespace.

Table 87 – Namespaces used in this document
NamespaceURI Namespace Index Example
http://opcfoundation.org/UA/00:EngineeringUnits
http://opcfoundation.org/UA/DI/22:DeviceRevision
http://opcfoundation.org/UA/ISA95-JOBCONTROL_V2/33:JobOrderDataType
http://opcfoundation.org/UA/Machinery/44:MachineIdentificationType
http://opcfoundation.org/UA/Machinery/Jobs/55:JobManagementType
http://opcfoundation.org/UA/Machinery/Result/66:ResultMetaDataType
http://opcfoundation.org/UA/WireHarness/VEC/77:ExtendableElement

15 (normative)WireHarness Namespace and mappings

15.1 NodeSet and supplementary files for WireHarness Information Model

The WireHarness Information Model is identified by the following URIs:

http://opcfoundation.org/UA/WireHarness/

http://opcfoundation.org/UA/WireHarness/VEC/

depending on whether it is VEC-related or general data.

Documentation for the NamespaceUri can be found as follows:

For VEC, here.

For General, here.

The NodeSets associated with this version of the specification can be found here:

https://reference.opcfoundation.org/nodesets/?u=http://opcfoundation.org/UA/WireHarness/VEC/&v=1.0.0&i=1

https://reference.opcfoundation.org/nodesets/?u=http://opcfoundation.org/UA/WireHarness/&v=1.0.0&i=1

The NodeSets associated with the latest version of the specification can be found here:

https://reference.opcfoundation.org/nodesets/?u=http://opcfoundation.org/UA/WireHarness/VEC/&i=1

https://reference.opcfoundation.org/nodesets/?u=http://opcfoundation.org/UA/WireHarness/&i=1

Supplementary files (including the VEC to OPC UA transformation) for the WireHarness Information Model can be found here:

https://reference.opcfoundation.org/nodesets/?u=http://opcfoundation.org/UA/WireHarness/VEC/&v=1.0.0&i=2

https://reference.opcfoundation.org/nodesets/?u=http://opcfoundation.org/UA/WireHarness/&v=1.0.0&i=2

Files associated with the latest version of the specification can be found here:

https://reference.opcfoundation.org/nodesets/?u=http://opcfoundation.org/UA/WireHarness/VEC/&i=2

https://reference.opcfoundation.org/nodesets/?u=http://opcfoundation.org/UA/WireHarness/&i=2

15.2 Capability Identifier

The capability identifier for this document shall be:

wireharness

___________

16 (informative)Implementation scenarios

The wire harness manufacturing industry is known for having multiple types of machines, from simple benchtop machines that require a manual operator to the full-scale automatic machines capable of manufacturing a harness. The goal of this Companion Specification is to facilitate the integration of this disparaged set of equipment, and thus multiple implementation scenarios are possible.

The basic minimalistic scenario allows an OPC UA server to expose its nameplate information, a reduced set of equipment states, and a minimalistic job control to return the job results and possibly material consumption information. This scenario only needs to implement the minimal mandatory OPC Machinery and job control interfaces, and does not need to deal with advanced interfaces such as the VEC-derived data models. Note that this scenario requires the article and part definitions to be managed in the machine, as well as the order of the jobs to be managed by the operator at the machine, including delegating the validation of quality validation processes (see Figure 15).

Figure 15 – Simple client scenario

Figure 16 describes a simple scenario of the production of a single wire, two-sided crimped product:

Figure 16 – Example of a simple article

For illustration purposes, assume that we want the following production flow:

A verification job with 1 piece for quality control purposes

2 subsequent production batches of similar size.

The simplest workflow (see Figure 17) for this implementation would require the MES to define 3 jobs (it is possible to group these jobs in a job group, this will be discussed after this example):

Job1:

Quantity: 1 piece

Article ID (All parts and article information are already stored in the machine)

Verification parameters: VerifyWireLength, VerifyCrimpHeight side1, VerifyPullOutForce side1 VerifyCrimpHeight side2, VerifyPullOutForce side2

Machine produces the sample

Operator measures the requested parameters, including the pull-out force on both ends. The machine stores the reference CFA that will be needed in later production jobs.

Machine sends Job1 results, including measured values, back to MES

ActualLength

Side1.ActualCrimpHeight

Side1.ActualCrimpPullOutForce

Side2.ActualCrimpHeight

Side2.ActualCrimpPullOutForce

MES verifies that the results are within tolerances

MES sends Job 2

Quantity: 5 pieces

Article ID, referencing WireID, TerminalID1, TerminalID2

Monitoring: CFA

Machine produces Piece1

Machine measures CFA

Machine sends event: Piece1 produced with CFA values (or reference to data), and Timestamps

Machine produces Piece2

Machine measures CFA

Machine sends event: Piece2 produced with CFA values (or reference to data), and Timestamps

After all pieces are produced, the machine sends the job result.

Figure 17 – Simple job scenario

The concept of JobGroupID has been developed with the goal of allowing MES and production plants to keep their existing processes, using one ID to reference all parts in the above jobs using the same logical JobGroupID (see Figure 18).

The JobGroupID is an optional job parameter that allows the MES to define multiple jobs, as in the example above, and provide an execution order. This makes it possible to add re-verification or post-production jobs, if desired.

Note that this Companion Specification does not cover the scenario of changing materials (for example, when a wire trommel runs empty and needs to be replaced, which may require a new validation). These are jobs that are usually coordinated by the machine.

Also note that the first scenario above allows for a check step within the MES, required before the second job is stored and started. The JobGroupA scenario below only collects the validation values of the verification/sample job.

Figure 18 – JobGroup scenario

This simple implementation can be complemented by adding part management, using the VEC definition of input material such as Wire, Terminal, Seals, etc. An additional optional step would be to send the actual article specification definition. In such a scenario, the machine would be able to return verification and monitoring information for every node in the article description.

Types of clients:

A client can be as simple as a basic monitoring application that can display and aggregate the machine states to present KPI’s on the usage of the machine, as well as list the jobs being produced at the machine. Or, it can be as complex as a full MES, providing part and article information to the machine to have control over several process parameters. Note that multiple clients could coordinate their activities to manage the complex data flows required for production. For example, one client could manage the parameters for all parts used in production, while another client could control the current production jobs.

Figure 19 – Multiple clients scenario

Some selected scenarios:

A simple server implementing the basic machinery and job control needs to implement:

Component identification and nameplate

Operating state

ISA95JobOrderReceiverObjectType with the store and clear methods

ISA95JobResponseProviderObjectType to parse the job production results

A server that wants to enable control of the validation of quality parameters during production must be aware of all the points mentioned above, plus:

VEC product definition for the harness to be manufactured

VEC part definition of the material used to produce the harness, including their specifications

Understanding of the article specification structure to understand which processes the client expects to be executed

Relevant ResultDataType to provide production monitoring results

A simple client with dashboard functionality, without the need for control, would implement the following:

Component identification and nameplate

Operating state

ISA95JobResponseProviderObject

17 (informative)Example of a job with part description and article specification

This section details the entire job process, including the components, the article specifications, the job order or request, the job order response, and the result transfer. The example includes only the essential values and omits empty elements. Figure 16 shows an image of a wire that needs to be cut, stripped, and crimped at both ends. Figure 20 through Figure 25 show the example as data diagram.

Figure 20 – Example of a wire
Figure 21 – Example of a terminal
Figure 22 – Example of an article
Figure 23 – Example of a JobOrder request
Figure 24 – Example of a JobOrder response
Figure 25 – Example of a result of a crimp process

18 (informative)Description of the relevant data types of the VEC transformation

This annex contains the DataType description of the relevant data types of the VEC transformation including a short description based on the VEC description. The detail description can be found in the VEC specification.

18.1 ConductorType

Specifies the type of the conductor, e.g. if it is rigid or stranded.

The Enumeration is defined in Table 88.

Table 88 – ConductorType VEC Enum Description
VEC NameEnum ValueDescription

Rigid

0 Used for conductors that are made of solid material.

Stranded

1 Used for conductors that are made of multiple individual strands (used for most automotive cores).

Foil

2 Used for conductors that are a foil (e.g. some shields).

Braided

3 Used for conductors that are made of multiple individual strands that are braided together (often used for shields).

18.2 CrimpBarrelType

This Enumeration describes with the CrimpBarrel is open or closed.

The Enumeration is defined in Table 89.

Table 89 – CrimpBarrelType VEC Enum Description
VEC NameEnum ValueDescription

Open

0The CrimpBarrel is open

Closed

1The CrimpBarrel is closed.

18.3 PrimaryPartType

The primary type of the part defines the type of the part (e.g. ConnectorHousing, Fixing, etc.) Since the VEC supports dual use parts (e.g. Fixing & WireProtection) the primary part type is necessary to define which specification associated to part is the primary character of the part. Therefore, all primary part types correspond to a PartOrUsageRelatedSpecification (e.g. ConnectorHousing --> ConnectorHousingSpecification).

The primary part type 'Other' is used if the PartVersion is not further specified by the VEC, which means it has no PartOrUsageRelatedSpecification, only a GeneralTechnicalPartSpecification or a direct instance of PartOrUsageRelatedSpecification.

The Enumeration is defined in Table 90.

Table 90 – PrimaryPartType VEC Enum Description
VEC NameEnum ValueDescription

Antenna

0

Battery

1

BoltMountedFixing

2

BoltTerminal

3

BridgeTerminal

4

CableDuct

5

CableTie

6

Capacitor

7

CavityAccessory

8

CavityPlug

9

CavitySeal

10

ConnectorHousing

11

ConnectorHousingCap

12

ConnectorHousingCover

13

CorrugatedPipe

14

Diode

15

EdgeMountedFixing

16

EEComponent

17

Ferrite

18

Fitting

19

Fixing

20

Fuse

21

Grommet

22

HoleMountedFixing

23

MultiCavityPlug

24

MultiCavitySeal

25

MultiFuse

26

Other

27 The PrimaryPartType " Other " is used for parts that are described by a direct instance of PartOrUsageRelatedSpecification . These are parts that do not have a specific classification in the VEC and can be described with a PartOrUsageRelatedSpecification and CustomProperties. The corresponding Role is the SpecificRole.

OpenWireEndTerminal

28

OpenWireEnd

29

PartStructure

30 The PrimaryPartType " PartStructure " has an inconsistency with VEC conventions for historical reasons, which is kept for backwards compatibility. The corresponding PartOrUsageRelatedSpecification is the PartStructureSpecification. However, the corresponding Role is the PartWithSubComponentsRole .

PluggableTerminal

31

PotentialDistributor

32

Relay

33

RingTerminal

34

ShrinkableTube

35

SpliceTerminal

36

Stripe

37

Tape

38

Terminal

39

Tube

40

Wire

41

WireEndAccessory

42

WireProtection

43

18.4 ARGB32ColorType

This structure contains a structure of a color.

The structure is defined in Table 91

Table 91 – ARGB32ColorType VEC Class Description
VEC NameDataTypeDescriptionAllow
Subtypes
ARGB32ColorTypestructure Subtype of the 0:Structure defined in OPC 10000-3.

Value

UInt32The value of the color. It is given as ARGB. False

Name

StringA human readable name of the color. False

18.5 ExtendableElement

Abstract base class for extendable elements. Extendable elements have the possibility to define non-standard custom properties.

The structure is defined in Table 92

Table 92 – ExtendableElement VEC Class Description
VEC NameDataTypeDescriptionAllow
Subtypes
ExtendableElementstructure Subtype of the 0:Structure defined in OPC 10000-3.

id

TrimmedString Abstract base class for extendable elements. Extendable elements have the possibility to define non-standard custom properties. False

18.6 BoundingBox

The bounding box is defined for the processed state of the component, as it appears in the finished product. Therefore, it is valid to use the bounding box as simplified geometry of the component for viewing or simple DMU operations. For correct 3D positioning, the bounding might require a transformation in the coordinate system of the component (see LocalGeometrySpecification.BoundingBoxPositioning ). The bounding box defines the smallest cuboid (box) that can contain a described part completely. If a component has multiple variants, the bounding box is the smallest cuboid that can contain every variant, while maintaining the spatial orientation of the bounding box and component variants. It is valid to use the BoundingBox to describe the dimensions of a component, even if not all dimensions are known (e.g. only length and width). However, it must be possible to transform such a partial bounding box into a complete bounding box by adding the missing dimensions.

The structure is defined in Table 139

Table 93 – BoundingBox VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
BoundingBoxstructureSubtype of ExtendableElement defined in VEC

X

NumericalValue Defines the extent of the bounding box in the direction of x (length). The bounding box is defined for the processed state of the component, as it appears in the finished product. Therefore, it is valid to use the bounding box as simplified geometry of the component for viewing or simple DMU operations. For correct 3D positioning, the bounding might require a transformation in the coordinate system of the component (see LocalGeometrySpecification.BoundingBoxPositioning ). The bounding box defines the smallest cuboid (box) that can contain a described part completely. If a component has multiple variants, the bounding box is the smallest cuboid that can contain every variant, while maintaining the spatial orientation of the bounding box and component variants. It is valid to use the BoundingBox to describe the dimensions of a component, even if not all dimensions are known (e.g. only length and width). However, it must be possible to transform such a partial bounding box into a complete bounding box by adding the missing dimensions. False

Y

NumericalValue Defines the extent of the bounding box in the direction of y (width). The bounding box is defined for the processed state of the component, as it appears in the finished product. Therefore, it is valid to use the bounding box as simplified geometry of the component for viewing or simple DMU operations. For correct 3D positioning, the bounding might require a transformation in the coordinate system of the component (see LocalGeometrySpecification.BoundingBoxPositioning ). The bounding box defines the smallest cuboid (box) that can contain a described part completely. If a component has multiple variants, the bounding box is the smallest cuboid that can contain every variant, while maintaining the spatial orientation of the bounding box and component variants. It is valid to use the BoundingBox to describe the dimensions of a component, even if not all dimensions are known (e.g. only length and width). However, it must be possible to transform such a partial bounding box into a complete bounding box by adding the missing dimensions. False

Z

NumericalValue Defines the extent of the bounding box in the direction of z (height). The bounding box is defined for the processed state of the component, as it appears in the finished product. Therefore, it is valid to use the bounding box as simplified geometry of the component for viewing or simple DMU operations. For correct 3D positioning, the bounding might require a transformation in the coordinate system of the component (see LocalGeometrySpecification.BoundingBoxPositioning ). The bounding box defines the smallest cuboid (box) that can contain a described part completely. If a component has multiple variants, the bounding box is the smallest cuboid that can contain every variant, while maintaining the spatial orientation of the bounding box and component variants. It is valid to use the BoundingBox to describe the dimensions of a component, even if not all dimensions are known (e.g. only length and width). However, it must be possible to transform such a partial bounding box into a complete bounding box by adding the missing dimensions. False

18.7 ConfigurableElement

Abstract base class for all elements which can be configured with a VariantConfiguration.

The structure is defined in Table 139

Table 94 – ConfigurableElement VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
ConfigurableElementstructureSubtype of ExtendableElement defined in VEC

18.8 ContactPoint

A contact point defines the relationship between Terminals, Seals, Plugs, Cavities and Wires. It specifies a single contacting variant. This means that the contacting is manufactured, as specified by the Contact Point. Either all participants (Cavities, Terminals, Seals, Wires) set into a relationship by the ContactPoint exist in a specific harness or none. There is no requirement, to filter the participants of a contacting situation with information derived from VariantConfigurations or assembly / module associations in order to create a manufacturing variant. The ContactPoint represents a single potential. Consequently, all cavities and wires referencing / being referenced by a ContactPoint are short-circuited and have the same potential (even if the signals on the wires are named differently. If a contacting of a terminal has more than one potential (e.g. a coax-contact) one contact point for each potential is needed.

The structure is defined in Table 139

Table 95 – ContactPoint VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
ContactPointstructureSubtype of 1:ConfigurableElement defined in VEC

Identification

String Specifies a unique identification of the ContactPoint. The identification is guaranteed to be unique within the ContactingSpecification. A contact point defines the relationship between Terminals, Seals, Plugs, Cavities and Wires. It specifies a single contacting variant. This means that the contacting is manufactured, as specified by the Contact Point. Either all participants (Cavities, Terminals, Seals, Wires) set into a relationship by the ContactPoint exist in a specific harness or none. There is no requirement, to filter the participants of a contacting situation with information derived from VariantConfigurations or assembly / module associations in order to create a manufacturing variant. The ContactPoint represents a single potential. Consequently, all cavities and wires referencing / being referenced by a ContactPoint are short-circuited and have the same potential (even if the signals on the wires are named differently. If a contacting of a terminal has more than one potential (e.g. a coax-contact) one contact point for each potential is needed. False

MountedTerminal

TerminalRoleIdDataTypeReferences the terminal that is used for contacting defined by the ContactPoint. A contact point defines the relationship between Terminals, Seals, Plugs, Cavities and Wires. It specifies a single contacting variant. This means that the contacting is manufactured, as specified by the Contact Point. Either all participants (Cavities, Terminals, Seals, Wires) set into a relationship by the ContactPoint exist in a specific harness or none. There is no requirement, to filter the participants of a contacting situation with information derived from VariantConfigurations or assembly / module associations in order to create a manufacturing variant. The ContactPoint represents a single potential. Consequently, all cavities and wires referencing / being referenced by a ContactPoint are short-circuited and have the same potential (even if the signals on the wires are named differently. If a contacting of a terminal has more than one potential (e.g. a coax-contact) one contact point for each potential is needed. False

WireMounting

WireMountingSpecifies the WireMouting defined by ContactPoint. More than one WireMounting is allowed in order to support variance. In concrete configuration the WireMounting with all referenced elements present is used. A contact point defines the relationship between Terminals, Seals, Plugs, Cavities and Wires. It specifies a single contacting variant. This means that the contacting is manufactured, as specified by the Contact Point. Either all participants (Cavities, Terminals, Seals, Wires) set into a relationship by the ContactPoint exist in a specific harness or none. There is no requirement, to filter the participants of a contacting situation with information derived from VariantConfigurations or assembly / module associations in order to create a manufacturing variant. The ContactPoint represents a single potential. Consequently, all cavities and wires referencing / being referenced by a ContactPoint are short-circuited and have the same potential (even if the signals on the wires are named differently. If a contacting of a terminal has more than one potential (e.g. a coax-contact) one contact point for each potential is needed. False

18.9 OccurrenceOrUsage

An OccurrenceOrUsage is an abstract appearance of a part in the harness. This can either be a concrete part (with a part number or something similar) or the description (specification / requirements) of a part that should be used at that position. In the first case it would be a PartOccurrence in the second case a PartUsage.

The structure is defined in Table 139

Table 96 – OccurrenceOrUsage VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
OccurrenceOrUsagestructureSubtype of 1:ConfigurableElement defined in VEC

Identification

String Specifies a unique identification of the OccurrenceOrUsage . The identification is guaranteed to be unique within the context. For all VEC-documents an OccurrenceOrUsage -instance can be trusted to be the same if the context-instance is the same and the identification of the OccurrenceOrUsage is the same. An OccurrenceOrUsage is an abstract appearance of a part in the harness. This can either be a concrete part (with a part number or something similar) or the description (specification / requirements) of a part that should be used at that position. In the first case it would be a PartOccurrence in the second case a PartUsage. False

Role

Role Specifies the different roles of the OccurrenceOrUsage. An OccurrenceOrUsage is an abstract appearance of a part in the harness. This can either be a concrete part (with a part number or something similar) or the description (specification / requirements) of a part that should be used at that position. In the first case it would be a PartOccurrence in the second case a PartUsage. False

18.10 PartOccurrence

A PartOccurrence is an instance of a component with a specified part number (7:PartVersion).

The structure is defined in Table 139

Table 97 – PartOccurrence VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
PartOccurrencestructureSubtype of 1:OccurrenceOrUsage defined in VEC

Part

7:PartVersion References the 7:PartVersion that is instantiated by this PartOccurrence. A PartOccurrence is an instance of a component with a specified part number (7:PartVersion). False

18.11 RoutableElement

A RoutableElement is an element that can be routed, which mean it is possible to assign it to a Path in the Topology.

The structure is defined in Table 139

Table 98 – RoutableElement VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
RoutableElementstructureSubtype of 1:ConfigurableElement defined in VEC

18.12 WireElementReference

A WireElementReference represents the usage of a WireElement in the context of a PartUsage or PartOccurrence. For contacting purposes, a WireElementReference has WireEnds. KBLFRM-384

The structure is defined in Table 139

Table 99 – WireElementReference VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
WireElementReferencestructureSubtype of 1:RoutableElement defined in VEC

Identification

String Specifies a unique identification of the WireElementReference. The identification is guaranteed to be unique within the WireRole. A WireElementReference represents the usage of a WireElement in the context of a PartUsage or PartOccurrence. For contacting purposes, a WireElementReference has WireEnds. KBLFRM-384 False

ReferencedWireElement

WireElementIdDataType References the WireElement that is represented by the WireElementReference. A WireElementReference represents the usage of a WireElement in the context of a PartUsage or PartOccurrence. For contacting purposes, a WireElementReference has WireEnds. KBLFRM-384 False

WireEnd

WireEndSpecifies the ends of the WireElementReference for contacting purposes. A WireElementReference represents the usage of a WireElement in the context of a PartUsage or PartOccurrence. For contacting purposes, a WireElementReference has WireEnds. KBLFRM-384 False

WireLength

NumericalValueSpecifies the different length of a wire. A WireElementReference represents the usage of a WireElement in the context of a PartUsage or PartOccurrence. For contacting purposes, a WireElementReference has WireEnds. KBLFRM-384 False

18.13 CrimpDetail

Abstract base class for the definition of CrimpDetail- information. See CoreCrimpDetail & InsulationCrimpDetail .

The structure is defined in Table 139

Table 100 – CrimpDetail VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
CrimpDetailstructureSubtype of ExtendableElement defined in VEC

Size

Size Defines the expected size of the crimp. The height is measured in direction of the crimp opening. The width is measured in orthogonal to the height and orthogonal to main axis of the terminal ( TerminalSpecification.OverallLength ). Abstract base class for the definition of CrimpDetail- information. See CoreCrimpDetail & InsulationCrimpDetail . False

18.14 CoreCrimpDetail

The CoreCrimpDetail defines crimp values for a conductor crimp (wire crimp). The selection criteria to which the CoreCrimpDetail applies are defined by the referenced ConductorSpecification.

The structure is defined in Table 139

Table 101 – CoreCrimpDetail VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
CoreCrimpDetailstructureSubtype of 1:CrimpDetail defined in VEC

AppliesTo

ConductorSpecification The CoreCrimpDetail defines crimp values for a conductor crimp (wire crimp). The selection criteria to which the CoreCrimpDetail applies are defined by the referenced ConductorSpecification. False

InsulationCrimpDetails

InsulationCrimpDetail Defines the different InsulationCrimpDetails that are valid combinations for this CoreCrimpDetail. The CoreCrimpDetail defines crimp values for a conductor crimp (wire crimp). The selection criteria to which the CoreCrimpDetail applies are defined by the referenced ConductorSpecification. False

PullOffForce

NumericalValueThe minimum force that the completed crimp (core crimp only, insulation crimp non-functional) should withstand when wire is being pulled off the terminal. Above that force, the crimp can be expected to be destroyed at any time. The CoreCrimpDetail defines crimp values for a conductor crimp (wire crimp). The selection criteria to which the CoreCrimpDetail applies are defined by the referenced ConductorSpecification. False

18.15 InsulationCrimpDetail

The InsulationCrimpDetail defines crimp values for a insulation crimp. The selection criteria to which the InsulationCrimpDetail applies are defined by the referenced InsulationSpecification and the ConductorSpecification referenced by the containing CoreCrimpDetail.

The structure is defined in Table 139

Table 102 – InsulationCrimpDetail VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
InsulationCrimpDetailstructureSubtype of 1:CrimpDetail defined in VEC

PullOffForce

NumericalValue The minimum force that the completed crimp should withstand when wire is being pulled off the terminal. Above that force, the crimp can be expected to be destroyed at any time. The InsulationCrimpDetail defines crimp values for a insulation crimp. The selection criteria to which the InsulationCrimpDetail applies are defined by the referenced InsulationSpecification and the ConductorSpecification referenced by the containing CoreCrimpDetail. False

AppliesTo

InsulationSpecification The InsulationCrimpDetail defines crimp values for a insulation crimp. The selection criteria to which the InsulationCrimpDetail applies are defined by the referenced InsulationSpecification and the ConductorSpecification referenced by the containing CoreCrimpDetail. False

18.16 ItemVersion

Abstract super-class for physical objects (e.g. a Terminal), virtual objects (e.g. a 150% Harness) as well as documents (e.g. a wiring diagram). In difference to AP 212 the VEC makes it only possible to describe/exchange information about Versions since Master-Objects cannot exist without one or more Versions.

The structure is defined in Table 139

Table 103 – ItemVersion VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
ItemVersionstructureSubtype of ExtendableElement defined in VEC

CompanyName

String Defines the publishing company of the ItemVersion. The companyName is part of the main identifier of an ItemVersion together with the corresponding number (partNumber or documentNumber) and version (7:PartVersion or documentVersion). Abstract super-class for physical objects (e.g. a Terminal), virtual objects (e.g. a 150% Harness) as well as documents (e.g. a wiring diagram). In difference to AP 212 the VEC makes it only possible to describe/exchange information about Versions since Master-Objects cannot exist without one or more Versions. False

18.17 DocumentVersion

A DocumentVersion is a unique identifier for a piece of information in a company context. The DocumentVersion is one of the three anchors for PDM information in the VEC. All technical information about a 7:PartVersion is contained in one or more documents. The documents are containing the actual content of the VEC since all Specifications are an element of a document.

The structure is defined in Table 139

Table 104 – DocumentVersion VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
DocumentVersionstructureSubtype of 1:ItemVersion defined in VEC

DocumentNumber

String The documentNumber is the major identifier of a DocumentVersion. The format is user defined and respectively company specific. A DocumentVersion is a unique identifier for a piece of information in a company context. The DocumentVersion is one of the three anchors for PDM information in the VEC. All technical information about a 7:PartVersion is contained in one or more documents. The documents are containing the actual content of the VEC since all Specifications are an element of a document. False

DocumentVersion

String The documentVersion specifies the version index of a document (see also documentNumber). A DocumentVersion is a unique identifier for a piece of information in a company context. The DocumentVersion is one of the three anchors for PDM information in the VEC. All technical information about a 7:PartVersion is contained in one or more documents. The documents are containing the actual content of the VEC since all Specifications are an element of a document. False

DigitalRepresentationIndex

String An arbitrary change index that indicates if the digital representation (the content in VEC) of this DocumentVersion has been changed / regenerated. This can be for example an index, a timestamp or a checksum. This allows the detection of changes in the content, even when the DocumentNumber & DocumentVersion is the same. For a more detailed explanation in the context see "Parts & Documents". KBLFRM-837. A DocumentVersion is a unique identifier for a piece of information in a company context. The DocumentVersion is one of the three anchors for PDM information in the VEC. All technical information about a 7:PartVersion is contained in one or more documents. The documents are containing the actual content of the VEC since all Specifications are an element of a document. False

Specification

SpecificationSpecifies the Specifications contained in the DocumentVersion. All structured, technical information in the VEC is described by such Specifications. A DocumentVersion is a unique identifier for a piece of information in a company context. The DocumentVersion is one of the three anchors for PDM information in the VEC. All technical information about a 7:PartVersion is contained in one or more documents. The documents are containing the actual content of the VEC since all Specifications are an element of a document. False

18.18 PartVersion

A PartVersion is unique identifier for a part in a company context. A part can be any components within a vehicle. The PartVersion is one of the three anchors for PDM information in the VEC. All technical information about a PartVersion is contained in one or more documents. These describing elements are normally referencing to the PartVersion.

The structure is defined in Table 105

Table 105 – 7:PartVersion VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
7:PartVersion structureSubtype of 1:ItemVersion defined in VEC

PartNumber

String The partNumber is the major identifier of a 7:PartVersion. The format is user defined and respectively company specific. For all VEC-documents a 7:PartVersion-instance can be trusted to be identical if the combination of partNumber, 7:PartVersion and companyName is identical. A 7:PartVersion is unique identifier for a part in a company context. A part can be any components within a vehicle. The 7:PartVersion is one of the three anchors for PDM information in the VEC. All technical information about a 7:PartVersion is contained in one or more documents. These describing elements are normally referencing to the 7:PartVersion. False

18.19 ResourceVersion

A ResourceVersion is unique identifier for a resource in a company context. Resources are elements used to produce, handle or service a harness, e.g. tools or machines, that do not end up in the product (see 7:PartVersion ). The ResourceVersion is one of the three anchors for PDM information in the VEC.

The structure is defined in Table 106.

Table 106 – ResourceVersion VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
ResourceVersionstructureSubtype of 1:ItemVersion defined in VEC

ResourceNumber

String The ResourceNumber is the major identifier of a ResourceVersion . The format is user defined and respectively company specific. For all VEC-documents a ResourceVersion-instance can be trusted to be identical if the combination of ResourceNumber , ResourceVersion and CompanyName is identical. A ResourceVersion is unique identifier for a resource in a company context. Resources are elements used to produce, handle or service a harness, e.g. tools or machines, that do not end up in the product (see 7:PartVersion ). The ResourceVersion is one of the three anchors for PDM information in the VEC. False

ResourceVersion

String The ResourceVersion specifies the version index of a resource (see also ResourceNumber ). A ResourceVersion is unique identifier for a resource in a company context. Resources are elements used to produce, handle or service a harness, e.g. tools or machines, that do not end up in the product (see 7:PartVersion ). The ResourceVersion is one of the three anchors for PDM information in the VEC. False

18.20 Role

A Role is the corresponding mechanism for OccurrenceOrUsages to the PartOrUsageRelatedSpecifcations for 7:PartVersions or PartUsages. The PartOrUsageRelatedSpecifcations are describing a certain aspect of the master data of a part. A Role describes the corresponding properties and relationships for instances of a part (e.g. the usage specific properties of a wire occurrence like the length or the contacting).

The structure is defined in Table 107.

Table 107 – Role VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
RolestructureSubtype of ExtendableElement defined in VEC

Identification

String Specifies a unique identification of the Role. The identification is guaranteed to be unique within the OccurrenceOrUsage. A Role is the corresponding mechanism for OccurrenceOrUsages to the PartOrUsageRelatedSpecifcations for 7:PartVersions or PartUsages. The PartOrUsageRelatedSpecifcations are describing a certain aspect of the master data of a part. A Role describes the corresponding properties and relationships for instances of a part (e.g. the usage specific properties of a wire occurrence like the length or the contacting). False

18.21 CavityPartRole

undefined

The structure is defined in Table 108.

Table 108 – CavityPartRole VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
CavityPartRolestructureSubtype of 1:Role defined in VEC

18.22 CavitySealRole

A CavitySealRole defines the instance specific properties and relationships of a cavity seal.

The structure is defined in Table 109.

Table 109 – CavitySealRole VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
CavitySealRolestructureSubtype of 1:CavityPartRole defined in VEC

CavitySealSpecification

CavitySealSpecificationIdDataType References the CavitySealSpecification that is instanced by this CavitySealRole. A CavitySealRole defines the instance specific properties and relationships of a cavity seal. False

18.23 TerminalRole

A TerminalRole defines the instance specific properties and relationships of a terminal.

The structure is defined in Table 110.

Table 110 – TerminalRole VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
TerminalRolestructureSubtype of 1:Role defined in VEC

TerminalSpecification

TerminalSpecificationIdDataType  References the TerminalSpecification that is instanced by this TerminalRole. A TerminalRole defines the instance specific properties and relationships of a terminal. False

WireReceptionReference

WireReceptionReference Specifies the WireReceptionReferences of this TerminalRole. A TerminalRole defines the instance specific properties and relationships of a terminal. False

18.24 PluggableTerminalRole

A PluggableTerminalRole defines the instance specific properties and relationships of a pluggable terminal.

The structure is defined in Table 111.

Table 111 – PluggableTerminalRole VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
PluggableTerminalRolestructureSubtype of 1:TerminalRole defined in VEC

18.25 WireRole

A WireRole defines the instance specific properties and relationships of a wire.

The structure is defined in Table 112.

Table 112 – WireRole VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
WireRolestructureSubtype of 1:Role defined in VEC

WireSpecification

WireSpecificationIdDataType References the WireSpecification that is instanced by this WireRole. A WireRole defines the instance specific properties and relationships of a wire. False

WireElementReference

WireElementReferenceSpecifies the WireElementReferences used in the WireRole. For multi core wires more than one WireElementReference is needed. A WireRole defines the instance specific properties and relationships of a wire. False

18.26 Specification

Abstract super-class for all specifications. Every technical information exchanged with the VEC is contained in the different specializations of a specification.

The structure is defined in Table 113.

Table 113 – Specification VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
SpecificationstructureSubtype of ExtendableElement defined in VEC

Identification

String Specifies a unique identification of the specification. The identification is guaranteed to be unique within the document containing the specification. For all VEC-documents a Specification-instance can be trusted to be identical if the DocumentVersion-instance is the same (see DocumentVersion) and the identification of the Specification is the same. Abstract super-class for all specifications. Every technical information exchanged with the VEC is contained in the different specializations of a specification. False

18.27 CompositionSpecification

The CompositionSpecificiation is used to define a set of occurrences required to describe unambiguously the design of a composite part. This does not have to be necessarily the same occurrences which are building the bill of material. Example: A company might want to regard an antenna cable as one part out of a bill of material perspective. However, at the same time it may be useful for the company to be able to describe the contacting of the antenna cable within the VEC. (see also PartStructureSpecification)

The structure is defined in Table 114.

Table 114 – CompositionSpecification VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
CompositionSpecificationstructureSubtype of 1:Specification defined in VEC

Component

PartOccurrence Specifies the PartOccurrences defined in the CompositionSpecification. The CompositionSpecificiation is used to define a set of occurrences required to describe unambiguously the design of a composite part. This does not have to be necessarily the same occurrences which are building the bill of material. Example: A company might want to regard an antenna cable as one part out of a bill of material perspective. However, at the same time it may be useful for the company to be able to describe the contacting of the antenna cable within the VEC. (see also PartStructureSpecification) False

18.28 ConductorSpecification

Specification for the definition of conducting properties of a WireElement.

The structure is defined in Table 115.

Table 115 – ConductorSpecification VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
ConductorSpecificationstructureSubtype of 1:Specification defined in VEC

CrossSectionArea

NumericalValue Specifies the cross-section area of the conductor (e.g. 0,5 mm²). The cross-section area is a nominal value, which refers to the conducting properties of the conductor normalized to the properties of a full material core. Specification for the definition of conducting properties of a WireElement. False

Type

ConductorType Specifies the type of the conductor, e.g. if it is rigid or stranded. Specification for the definition of conducting properties of a WireElement. False

18.29 CoreSpecification

Defines the properties of a circular conductor (core) which are specific for them.

The structure is defined in Table 116.

Table 116 – CoreSpecification VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
CoreSpecificationstructureSubtype of 1:ConductorSpecification defined in VEC

OutsideDiameter

NumericalValue Specifies the outside diameter of the core. Defines the properties of a circular conductor (core) which are specific for them. False

18.30 ContactingSpecification

Specification for the description of the contacting. A contacting defines the relationships between Terminals, Seals, Plugs, Cavities and Wires.

The structure is defined in Table 117.

Table 117 – ContactingSpecification VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
ContactingSpecificationstructureSubtype of 1:Specification defined in VEC

ContactPoint

ContactPointSpecifies the ContactPoints defined by the ContactingSpecification. Specification for the description of the contacting. A contacting defines the relationships between Terminals, Seals, Plugs, Cavities and Wires. False

18.31 InsulationSpecification

Specification for the definition of insulation properties of a WireElement.

The structure is defined in Table 118.

Table 118 – InsulationSpecification VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
InsulationSpecificationstructureSubtype of 1:Specification defined in VEC

BaseColor

ARGB32ColorType Specifies the base color of the insulation. Specification for the definition of insulation properties of a WireElement. False

FirstIdentificationColor

ARGB32ColorType Specifies the first identification color of the insulation. Specification for the definition of insulation properties of a WireElement. False

SecondIdentificationColor

ARGB32ColorType Specifies the second identification color of the insulation. Specification for the definition of insulation properties of a WireElement. False

Thickness

NumericalValue Specifies the thickness of the insulation. Specification for the definition of insulation properties of a WireElement. False

18.32 PartOrUsageRelatedSpecification

Base class for all specifications which are describing a 7:PartVersion or a PartUsage . A PartOrUsageRelatedSpecification specifies a certain aspect of the described part or usage (e.g. general technical part information, connector housing aspects or wire aspects).

The structure is defined in Table 119.

Table 119 – PartOrUsageRelatedSpecification VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
PartOrUsageRelatedSpecificationstructureSubtype of 1:Specification defined in VEC

SpecialPartType

String The specialPartType allows the specification of subclassifications for a PartOrUsageRelatedSpecification (e.g. different types of connector housings). Base class for all specifications which are describing a 7:PartVersion or a PartUsage . A PartOrUsageRelatedSpecification specifies a certain aspect of the described part or usage (e.g. general technical part information, connector housing aspects or wire aspects). False

DescribedPart

7:PartVersion References the 7:PartVersion(s) to which the information defined in this specification applies. Example: If the PartOrUsageRelatedSpecification is a GeneralTechnicalPartSpecifcation and it defines that the color is "green" then all 7:PartVersion referenced by this association are "green". Base class for all specifications which are describing a 7:PartVersion or a PartUsage . A PartOrUsageRelatedSpecification specifies a certain aspect of the described part or usage (e.g. general technical part information, connector housing aspects or wire aspects). False

18.33 CavityPartSpecification

The CavityPartSpecification is an abstract class for common properties of non-electrical parts that are used in Cavities .

The structure is defined in Table 120.

Table 120 – CavityPartSpecification VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
CavityPartSpecificationstructureSubtype of 1:PartOrUsageRelatedSpecification defined in VEC

18.34 CavitySealSpecification

Specification for the definition of cavity seals. A CavitySeal is a watertight non-electrical object to fill a populated Cavity.

The structure is defined in Table 121.

Table 121 – CavitySealSpecification VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
CavitySealSpecificationstructureSubtype of 1:CavityPartSpecification defined in VEC

18.35 GeneralTechnicalPartSpecification

Specification for the definition of common properties for technical parts.

The structure is defined in Table 122.

Table 122 – GeneralTechnicalPartSpecification VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
GeneralTechnicalPartSpecificationstructureSubtype of 1:PartOrUsageRelatedSpecification defined in VEC

ColorInformation

ARGB32ColorType Specifies the color of the part. Specification for the definition of common properties for technical parts. False

BoundingBox

BoundingBox Defines the bounding box of the part. Specification for the definition of common properties for technical parts. False

18.36 TerminalSpecification

Specification for the definition of terminals. A terminal can own multiple WireReceptions & TerminalReceptions.

The structure is defined in Table 123.

Table 123 – TerminalSpecification VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
TerminalSpecificationstructureSubtype of 1:PartOrUsageRelatedSpecification defined in VEC

ConnectionALength

NumericalValue Specifies the length of the terminal between the contact area (terminal reception) and the crimp are (wire reception, see diagram "Terminal Dimensions"). Specification for the definition of terminals. A terminal can own multiple WireReceptions & TerminalReceptions. False

OverallLength

NumericalValue Specifies the overall length the terminal (see diagram "Terminal Dimensions"). Specification for the definition of terminals. A terminal can own multiple WireReceptions & TerminalReceptions. False

WireReception

WireReceptionSpecifies the WireReceptions of the terminal described by the TerminalSpecification. Specification for the definition of terminals. A terminal can own multiple WireReceptions & TerminalReceptions. False

18.37 PluggableTerminalSpecification

Specification for the definition of pluggable terminals.

The structure is defined in Table 124.

Table 124 – PluggableTerminalSpecification VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
PluggableTerminalSpecificationstructureSubtype of 1:TerminalSpecification defined in VEC

18.38 WireSpecification

Specification for the definition of a wire. This can either be a complex multicore wire or a normal single core. In the VEC a wire is defined by one WireElement, which may be composed from other WireElements.

The structure is defined in Table 125.

Table 125 – WireSpecification VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
WireSpecificationstructureSubtype of 1:PartOrUsageRelatedSpecification defined in VEC

WireElement

WireElement Specifies the WireElement that represents the root of the WireSpecification . Specification for the definition of a wire. This can either be a complex multicore wire or a normal single core. In the VEC a wire is defined by one WireElement, which may be composed from other WireElements. False

18.39 WireElementSpecification

A WireElementSpecification is the basic element to describe a wire in the VEC. A WireElementSpecification can be atomic or composed recursively out of other WireElementSpecifications. A WireElementSpecification can reference an InsulationSpecification, if it has an insulation, a CoreSpecification, if it has a core or a WireGroupSpecification if it is a grouping of other WireElementSpecifications in the Wire (e.g. a multi-core wire with twisted pairs).

The structure is defined in Table 126.

Table 126 – WireElementSpecification VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
WireElementSpecificationstructureSubtype of 1:Specification defined in VEC

OutsideDiameter

NumericalValue Specifies the outside diameter of the WireElement. A WireElementSpecification is the basic element to describe a wire in the VEC. A WireElementSpecification can be atomic or composed recursively out of other WireElementSpecifications. A WireElementSpecification can reference an InsulationSpecification, if it has an insulation, a CoreSpecification, if it has a core or a WireGroupSpecification if it is a grouping of other WireElementSpecifications in the Wire (e.g. a multi-core wire with twisted pairs). False

ConductorSpecification

ConductorSpecification If the WireElement has a core then the specification of the core is referenced here. A WireElementSpecification is the basic element to describe a wire in the VEC. A WireElementSpecification can be atomic or composed recursively out of other WireElementSpecifications. A WireElementSpecification can reference an InsulationSpecification, if it has an insulation, a CoreSpecification, if it has a core or a WireGroupSpecification if it is a grouping of other WireElementSpecifications in the Wire (e.g. a multi-core wire with twisted pairs). False

InsulationSpecification

InsulationSpecification If the WireElement has an insulation then the specification of the insulation is referenced here. A WireElementSpecification is the basic element to describe a wire in the VEC. A WireElementSpecification can be atomic or composed recursively out of other WireElementSpecifications. A WireElementSpecification can reference an InsulationSpecification, if it has an insulation, a CoreSpecification, if it has a core or a WireGroupSpecification if it is a grouping of other WireElementSpecifications in the Wire (e.g. a multi-core wire with twisted pairs). False

18.40 WireReceptionSpecification

Specification for the definition of wire receptions. A WireReception is the area of a terminal where the contacting with a wire element (e.g. by crimping) takes place.

The structure is defined in Table 127.

Table 127 – WireReceptionSpecification VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
WireReceptionSpecificationstructureSubtype of 1:Specification defined in VEC

InsulationDisplacementLength

NumericalValue Specifies the length of the insulation which must be stripped off to fit to this wire reception. Specification for the definition of wire receptions. A WireReception is the area of a terminal where the contacting with a wire element (e.g. by crimping) takes place. False

ConductorCrimpLength

NumericalValue Specifies the length of the conductor crimp (wire reception, see diagram "Terminal Dimensions"). Specification for the definition of wire receptions. A WireReception is the area of a terminal where the contacting with a wire element (e.g. by crimping) takes place. False

CrimpConnectionLength

NumericalValue Specifies the length of the crimp area, conductor + insulation crimp (wire reception, see diagram "Terminal Dimensions"). Specification for the definition of wire receptions. A WireReception is the area of a terminal where the contacting with a wire element (e.g. by crimping) takes place. False

InsulationCrimpLength

NumericalValue Specifies the length of the insulation crimp (wire reception, see diagram "Terminal Dimensions"). Specification for the definition of wire receptions. A WireReception is the area of a terminal where the contacting with a wire element (e.g. by crimping) takes place. False

WireTipProtrusion

ValueRange Defines the valid length range in which the protrusion of the conductor from the conductor crimp must be located. Specification for the definition of wire receptions. A WireReception is the area of a terminal where the contacting with a wire element (e.g. by crimping) takes place. False

CoreCrimpDetails

CoreCrimpDetail Defines the CrimpDetails for this WireReception. Specification for the definition of wire receptions. A WireReception is the area of a terminal where the contacting with a wire element (e.g. by crimping) takes place. False

CrimpBarrelType

CrimpBarrelTypeWhen the crimp barrel is open, the wire can be laid into the terminal from above. If the crimp barrel is closed, the wire must be fed in from the front. Specification for the definition of wire receptions. A WireReception is the area of a terminal where the contacting with a wire element (e.g. by crimping) takes place. False

18.41 Tolerance

A Tolerance defines the permissible limit or limits of variation for defined values (e.g. a NumericalValue ). The tolerated value is defined by the context in which the Tolerance is contained / used. The values of the limits of the Tolerance , LowerBoundary and UpperBoundary , shall be interpreted as "modifiers" to the actual value. To obtain an absolute range of valid values, the values of boundaries shall be added to the actual value, regardless of the Upper or Lower prefix. For example, to define a value of 100 mm with a tolerated variation between 95mm and 105mm, the definition would be Value = 100 mm, LowerBoundary=-5, UpperBoundary=+5 . The Unit of the Tolerance boundaries is always the same as in the defining context.

The structure is defined in Table 128.

Table 128 – Tolerance VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
TolerancestructureSubtype of ExtendableElement defined in VEC

LowerBoundary

Double Specifies the lower boundary for the tolerance. A Tolerance defines the permissible limit or limits of variation for defined values (e.g. a NumericalValue ). The tolerated value is defined by the context in which the Tolerance is contained / used. The values of the limits of the Tolerance , LowerBoundary and UpperBoundary , shall be interpreted as "modifiers" to the actual value. To obtain an absolute range of valid values, the values of boundaries shall be added to the actual value, regardless of the Upper or Lower prefix. For example, to define a value of 100 mm with a tolerated variation between 95mm and 105 mm, the definition would be Value = 100 mm, LowerBoundary=-5, UpperBoundary=+5 . The Unit of the Tolerance boundaries is always the same as in the defining context. False

UpperBoundary

Double Specifies the upper boundary for the tolerance. A Tolerance defines the permissible limit or limits of variation for defined values (e.g. a NumericalValue ). The tolerated value is defined by the context in which the Tolerance is contained / used. The values of the limits of the Tolerance , LowerBoundary and UpperBoundary , shall be interpreted as "modifiers" to the actual value. To obtain an absolute range of valid values, the values of boundaries shall be added to the actual value, regardless of the Upper or Lower prefix. For example, to define a value of 100 mm with a tolerated variation between 95 mm and 105 mm, the definition would be Value = 100 mm, LowerBoundary=-5, UpperBoundary=+5 . The Unit of the Tolerance boundaries is always the same as in the defining context. False

18.42 WireElement

A WireElement specifies a WireElementSpecification in the context of a WireSpecification . This is necessary to define a unique identification of a WireElementSpecification in the context of a WireSpecification. Additionally, the WireElement serves as anchor for the instancing of a wire ( WireElementReference ) as the WireElementSpecifications are not uniquely related to a WireSpecification for reasons of reusability.

The structure is defined in Table 129.

Table 129 – WireElement VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
WireElementstructureSubtype of ExtendableElement defined in VEC

Identification

String The identification of the WireElement. The identification is guaranteed to be unique within a wire and immutable. The identification is guaranteed to be the same for the same WireElement over different VEC documents. A WireElement specifies a WireElementSpecification in the context of a WireSpecification . This is necessary to define a unique identification of a WireElementSpecification in the context of a WireSpecification. Additionally, the WireElement serves as anchor for the instancing of a wire ( WireElementReference ) as the WireElementSpecifications are not uniquely related to a WireSpecification for reasons of reusability. False

WireElementSpecification

WireElementSpecification Reference the WireElementSpecification that is represented by the WireElement. A WireElement specifies a WireElementSpecification in the context of a WireSpecification . This is necessary to define a unique identification of a WireElementSpecification in the context of a WireSpecification. Additionally, the WireElement serves as anchor for the instancing of a wire ( WireElementReference ) as the WireElementSpecifications are not uniquely related to a WireSpecification for reasons of reusability. False

SubWireElement

WireElement Defines the subWireElements of this WireElement . The subWireElements shall be consistent with the subWireElementSpecifications of the WireElementSpecification referenced by this WireElement and shall resemble that hierarchy. A WireElement specifies a WireElementSpecification in the context of a WireSpecification . This is necessary to define a unique identification of a WireElementSpecification in the context of a WireSpecification. Additionally, the WireElement serves as anchor for the instancing of a wire ( WireElementReference ) as the WireElementSpecifications are not uniquely related to a WireSpecification for reasons of reusability. False

18.43 WireEnd

A WireEnd is the end of a wire. This class mainly needed for the definition of a contacting. As a wire can be contacted on more than two ends (e.g. IDC) the WireEnd has a position on the wire.

The structure is defined in Table 130.

Table 130 – WireEnd VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
WireEndstructureSubtype of ExtendableElement defined in VEC

Identification

String Specifies a unique identification of the WireEnd. The identification is guaranteed to be unique within the WireElementReference. A WireEnd is the end of a wire. This class mainly needed for the definition of a contacting. As a wire can be contacted on more than two ends (e.g. IDC) the WireEnd has a position on the wire. False

PositionOnWire

Double Specifies the order of the WireEnds on the WireElementReference . This must be a value between 0 and 1. The PositionOnWire is defined as a floating point number, to allow the ordering of an arbitrary number of WireEnds while having constant known values for the first and last WireEnd ("0.0" & "1.0"). The PositionOnWire is<u>not</u>defined as a relative factor with respect to the WireLength to determine an exact position of the WireEnd on the wire. This would not be defined unambiguously, since a WireElementReference can define multiple lengths of different WireLengthTypes . If such an interpretation can be made, it is tool or process specific definition. In case of WireRole with multiple WireElementReferences the ordering of the WireEnds shall be consistent for all WireElementReferences. That means that all WireEnds with PositionOnWire = 0.0 are on the same side of the WireRole. A WireEnd is the end of a wire. This class mainly needed for the definition of a contacting. As a wire can be contacted on more than two ends (e.g. IDC) the WireEnd has a position on the wire. False

StrippingLength

NumericalValue Defines the length by which an insulation on this stripped relative to this WireEnd, defined by the cutBackLength . E.g. a cutBackLength of 20mm and a strippingLength of 10mm means, that this WireElementReference is cutback by 20mm relative to length of whole wire, on the side of the defining WireEnd. Form the remaining WireElementReference are then 10mm insulation removed. A WireEnd is the end of a wire. This class mainly needed for the definition of a contacting. As a wire can be contacted on more than two ends (e.g. IDC) the WireEnd has a position on the wire. False

InsulationPullbackLength

NumericalValueDefines a partial stripping process in which the insulation is pulled back by the insulationPullbackLength after being cut at the strippingLength, and is left on the WireEnd e.g. for logistic reasons. The insulationPullbackLength must be shorter than the strippingLength; otherwise, it would not qualify as partial stripping. A WireEnd is the end of a wire. This class mainly needed for the definition of a contacting. As a wire can be contacted on more than two ends (e.g. IDC) the WireEnd has a position on the wire. False

18.44 WireMounting

A WireMounting defines the mounting of a wire end to terminal. If the contacting is required to be waterproof a cavity seal can be mounted additionally.

The structure is defined in Table 131.

Table 131 – WireMounting VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
WireMountingstructureSubtype of ExtendableElement defined in VEC

MountedCavitySeal

CavitySealRoleIdDataType References the cavity seal that is used for the wire mounting. A WireMounting defines the mounting of a wire end to terminal. If the contacting is required to be waterproof a cavity seal can be mounted additionally. False

ReferencedWireEnd

WireEndIdDataType References the wire ends that are used for the wire mounting. The minimum cardinality is one, because a wire mounting without wire end makes no sense. The maximum cardinality is * in order to support multi crimps. A WireMounting defines the mounting of a wire end to terminal. If the contacting is required to be waterproof a cavity seal can be mounted additionally. False

WireMountingDetail

WireMountingDetail Specifies the WireMoutingDetails, if a detailed description of the relationships between WireEnds and WireReceptions is needed. A WireMounting defines the mounting of a wire end to terminal. If the contacting is required to be waterproof a cavity seal can be mounted additionally. False

18.45 WireMountingDetail

With a WireMountingDetail it is possible to describe a detailed wire mounting. This is needed if the information which wire end is mounted onto which wire reception is important (e.g. coax contacts).

The structure is defined in Table 132.

Table 132 – WireMountingDetail VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
WireMountingDetailstructureSubtype of ExtendableElement defined in VEC

CoreCrimpSize

Size Defines the required core crimp size (width & height) of this specific wire mounting situation. With a WireMountingDetail it is possible to describe a detailed wire mounting. This is needed if the information which wire end is mounted onto which wire reception is important (e.g. coax contacts). False

InsulationCrimpSize

Size Defines the required insulation crimp size (width & height) of this specific wire mounting situation. With a WireMountingDetail it is possible to describe a detailed wire mounting. This is needed if the information which wire end is mounted onto which wire reception is important (e.g. coax contacts). False

WireTipProtrusion

ValueRange Defines the valid length range in which the protrusion of the conductor from the conductor crimp must be located. With a WireMountingDetail it is possible to describe a detailed wire mounting. This is needed if the information which wire end is mounted onto which wire reception is important (e.g. coax contacts). False

ContactedWireReception

WireReceptionReferenceIdDataTypeReferences the WireReception that is used for the WireMounting. With a WireMountingDetail it is possible to describe a detailed wire mounting. This is needed if the information which wire end is mounted onto which wire reception is important (e.g. coax contacts). False

ReferencedWireEnd

WireEndIdDataTypeReferences the WireEnds that are mounted to referenced WireReception. A cardinality of more than one is allowed in order support parallel connectors, where multiple wire ends are placed on one side of the connector (one wire reception) and the other wire ends are placed on the other side of the connector (the other wire reception). With a WireMountingDetail it is possible to describe a detailed wire mounting. This is needed if the information which wire end is mounted onto which wire reception is important (e.g. coax contacts). False

AbsoluteSealPosition

NumericalValueThe absoluteSealPosition defines distance between the conductor tip and edge of the CavitySeal facing the conductor tip. With a WireMountingDetail it is possible to describe a detailed wire mounting. This is needed if the information which wire end is mounted onto which wire reception is important (e.g. coax contacts). False

CorePullOffForce

NumericalValueThe minimum force that the completed crimp (core crimp only, insulation crimp non-functional) should withstand when wire is being pulled off the terminal. Above that force, the crimp can be expected to be destroyed at any time. With a WireMountingDetail it is possible to describe a detailed wire mounting. This is needed if the information which wire end is mounted onto which wire reception is important (e.g. coax contacts). False

18.46 WireReception

A WireReception is the area of a terminal where the contacting with a wire element (e.g. by crimping) takes place. This class represents such an area on the terminal. Its description is done with a WireReceptionSpecification, which is independent from the TerminalSpecification. This allows the reuse of the specification of similar WireReception on different terminals.

The structure is defined in Table 133.

Table 133 – WireReception VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
WireReceptionstructureSubtype of ExtendableElement defined in VEC

Identification

String Specifies a unique identification of the WireReception. The identification is guaranteed to be unique within the TerminalSpecification (this might be for example a reception number). A WireReception is the area of a terminal where the contacting with a wire element (e.g. by crimping) takes place. This class represents such an area on the terminal. Its description is done with a WireReceptionSpecification, which is independent from the TerminalSpecification. This allows the reuse of the specification of similar WireReception on different terminals. False

Rotation

NumericalValue Defines the rotation of a WireReception relative to the TerminalReception. The rotation of the WireReception is the angle between the normal vector on base plane of the crimp area and the y-axis, which is a rotation around the z-axis (right hand rule, compare illustration in "Terminal Coordinate System" ). A WireReception is the area of a terminal where the contacting with a wire element (e.g. by crimping) takes place. This class represents such an area on the terminal. Its description is done with a WireReceptionSpecification, which is independent from the TerminalSpecification. This allows the reuse of the specification of similar WireReception on different terminals. False

WireReceptionSpecification

WireReceptionSpecificationReferences the WireReceptionSpecification that specifies the WireReception. A WireReception is the area of a terminal where the contacting with a wire element (e.g. by crimping) takes place. This class represents such an area on the terminal. Its description is done with a WireReceptionSpecification, which is independent from the TerminalSpecification. This allows the reuse of the specification of similar WireReception on different terminals. False

18.47 WireReceptionReference

A WireReceptionReference is an instance of a WireReception .

The structure is defined in Table 134.

Table 134 – WireReceptionReference VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
WireReceptionReferencestructureSubtype of ExtendableElement defined in VEC

Identification

String Specifies a unique identification of the WireReceptionReference . The identification is guaranteed to be unique within the TerminalRole (this might be for example a reception number). A WireReceptionReference is an instance of a WireReception . False

WireReception

WireReceptionIdDataType References the WireReception that is instanced by this WireReceptionReference. A WireReceptionReference is an instance of a WireReception . False

18.48 Material

Allows the definition of material information. Attributes of the type Material normally have the multiplicity [0..*]. This means that such an attribute can have material values for different referenceSystems . It must not have multiple values for the same referenceSystems .

The structure is defined in Table 135.

Table 135 – Material VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
Materialstructure Subtype of the 0:Structure defined in OPC 10000-3.

Key

String The key of the material in the corresponding material reference system. Allows the definition of material information. Attributes of the type Material normally have the multiplicity [0..*]. This means that such an attribute can have material values for different referenceSystems . It must not have multiple values for the same referenceSystems . False

ReferenceSystem

String The identification of the material reference system, which is defining possible values and the semantic of material keys. Allows the definition of material information. Attributes of the type Material normally have the multiplicity [0..*]. This means that such an attribute can have material values for different referenceSystems . It must not have multiple values for the same referenceSystems . False

18.49 Size

Defines the size of an element by width & height. Per definition is width > height.

The structure is defined in Table 136.

Table 136 – Size VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
SizestructureSubtype of the 0:Structure defined in OPC 10000-3.

Width

NumericalValueThe width of the element. Defines the size of an element by width & height. Per definition is width > height. False

Height

NumericalValue The height of the element. Defines the size of an element by width & height. Per definition is width > height. False

18.50 ValueWithUnit

Abstract class either for a single numerical measure or a range of numerical measures with upper, lower, or upper and lower bounds.

The structure is defined in Table 137.

Table 137 – ValueWithUnit VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
ValueWithUnitstructureSubtype of the 0:Structure defined in OPC 10000-3.

UnitComponent

EUInformationReferences the unit of the value. Abstract class either for a single numerical measure or a range of numerical measures with upper, lower, or upper and lower bounds. False

18.51 NumericalValue

A quantity expressed with a numerical value and a unit.

The structure is defined in Table 138.

Table 138 – NumericalValue VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
NumericalValuestructureSubtype of 1:ValueWithUnit defined in VEC

ValueComponent

Double Specifies the value of the numerical value. A quantity expressed with a numerical value and a unit. False

Tolerance

Tolerance Specifies the tolerance for the dimension. A quantity expressed with a numerical value and a unit. False

18.52 ValueRange

A pair of numerical values representing a value range.

The structure is defined in Table 139.

Table 139 – ValueRange VEC Class Description
VEC NameTypeDescriptionAllow
Subtypes
ValueRangestructureSubtype of 1:ValueWithUnit defined in VEC

Minimum

Double Lower bound of the value range. A pair of numerical values representing a value range. False

Maximum

Double Upper bound of the value range. A pair of numerical values representing a value range. False

Agreement of Use

COPYRIGHT RESTRICTIONS

This document is provided "as is" by the OPC Foundation and VDMA.

Right of use for this specification is restricted to this specification and does not grant rights of use for referred documents.

Right of use for this specification will be granted without cost.

This document may be distributed through computer systems, printed or copied as long as the content remains unchanged and the document is not modified.

OPC Foundation and VDMA do not guarantee usability for any purpose and shall not be made liable for any case using the content of this document.

The user of the document agrees to indemnify OPC Foundation and VDMA and their officers, directors and agents harmless from all demands, claims, actions, losses, damages (including damages from personal injuries), costs and expenses (including attorneys' fees) which are in any way related to activities associated with its use of content from this specification.

The document shall not be used in conjunction with company advertising, shall not be sold or licensed to any party.

The intellectual property and copyright is solely owned by the OPC Foundation and VDMA.

PATENTS

The attention of adopters is directed to the possibility that compliance with or adoption of OPC or VDMA specifications may require use of an invention covered by patent rights. OPC Foundation or VDMA shall not be responsible for identifying patents for which a license may be required by any OPC or VDMA specification, or for conducting legal inquiries into the legal validity or scope of those patents that are brought to its attention. OPC or VDMA specifications are prospective and advisory only. Prospective users are responsible for protecting themselves against liability for infringement of patents.

WARRANTY AND LIABILITY DISCLAIMERS

WHILE THIS PUBLICATION IS BELIEVED TO BE ACCURATE, IT IS PROVIDED "AS IS" AND MAY CONTAIN ERRORS OR MISPRINTS. THE OPC FOUDATION NOR VDMA MAKES NO WARRANTY OF ANY KIND, EXPRESSED OR IMPLIED, WITH REGARD TO THIS PUBLICATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF TITLE OR OWNERSHIP, IMPLIED WARRANTY OF MERCHANTABILITY OR WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE OR USE. IN NO EVENT SHALL THE OPC FOUNDATION NOR VDMA BE LIABLE FOR ERRORS CONTAINED HEREIN OR FOR DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, RELIANCE OR COVER DAMAGES, INCLUDING LOSS OF PROFITS, REVENUE, DATA OR USE, INCURRED BY ANY USER OR ANY THIRD PARTY IN CONNECTION WITH THE FURNISHING, PERFORMANCE, OR USE OF THIS MATERIAL, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

The entire risk as to the quality and performance of software developed using this specification is borne by you.

RESTRICTED RIGHTS LEGEND

This Specification is provided with Restricted Rights. Use, duplication or disclosure by the U.S. government is subject to restrictions as set forth in (a) this Agreement pursuant to DFARs 227.7202-3(a); (b) subparagraph (c)(1)(i) of the Rights in Technical Data and Computer Software clause at DFARs 252.227-7013; or (c) the Commercial Computer Software Restricted Rights clause at FAR 52.227-19 subdivision (c)(1) and (2), as applicable. Contractor / manufacturer are the OPC Foundation, 16101 N. 82nd Street, Suite 3B, Scottsdale, AZ, 85260-1830

COMPLIANCE

The combination of VDMA and OPC Foundation shall at all times be the sole entities that may authorize developers, suppliers and sellers of hardware and software to use certification marks, trademarks or other special designations to indicate compliance with these materials as specified within this document. Products developed using this specification may claim compliance or conformance with this specification if and only if the software satisfactorily meets the certification requirements set by VDMA or the OPC Foundation. Products that do not meet these requirements may claim only that the product was based on this specification and must not claim compliance or conformance with this specification.

TRADEMARKS

Most computer and software brand names have trademarks or registered trademarks. The individual trademarks have not been listed here.

GENERAL PROVISIONS

Should any provision of this Agreement be held to be void, invalid, unenforceable or illegal by a court, the validity and enforceability of the other provisions shall not be affected thereby.

This Agreement shall be governed by and construed under the laws of Germany.

This Agreement embodies the entire understanding between the parties with respect to, and supersedes any prior understanding or agreement (oral or written) relating to, this specification.