sercos

     OPC UA Companion-Specification

OPC 30100

 

OPC UA for SERCOS Devices

 

Release 1.2

2017-04-11

 

 

 

 

 

 

 


 

Specification Type

Industry Standard Specification

Comments:

 

 

 

 

Title:

OPC Unified Architecture
for Sercos Devices

Date:

April 11, 2017

 

 

 

 

Version:

Release 1.2

Software

MS-Word

Author:

Sercos International

Source:

 

 

 

 

 

 

 

Status:

Release

 

 

 

 

 

Document History

Version

Date

Reason

Comments

1.0

November 1st, 2015

Final draft

 

1.1

February 27th, 2017

Release Candidate

 

1.2

April 11th, 2017

Release

 

 


CONTENTS

Page

1      Scope. 1

2      Reference documents. 1

3      Terms, definitions, and abbreviations. 2

3.1      Use of terms 2

3.2      Terms and definitions. 2

3.3      OPC UA for Sercos Information model terms 2

3.3.1     Sercos Profile. 2

3.3.2     Sercos Device. 2

3.3.3     Sercos Function Group. 2

3.3.4     Sercos Class 2

3.3.5     Sercos Parameter (32-Bit IDN) 2

3.3.6     Sercos Profile Description Markup Language (SPDML) 3

3.4      Abbreviations and symbols. 3

4      Fundamentals 3

4.1      Introduction to Sercos 3

4.2      OPC UA. 4

4.3      Conventions used in this document 5

4.3.1     Conventions for Node descriptions 5

4.3.2     NodeIds and BrowseNames 6

4.3.3     Data types and lengths transformation between Sercos and OPC UA. 7

5      Sercos Information Model 9

5.1      General 9

5.2      SercosProfileType, SercosClassType and SercosFunctionGroupType. 10

5.3      SercosDeviceType. 12

5.4      DeviceSet Entry Point 14

5.5      SercosParameterType 15

5.5.1     Sercos Parameter Names. 16

5.5.2     Sercos Procedure Commands 17

6      Response code mapping. 18

7      Profiles and Namespaces 19

7.1      OPC UA Conformance Units and Profiles. 19

7.2      Handling of OPC UA namespaces 19

 


 

Figures

Figure 1 – Sercos 32 Bit IDN structure..................................................................... 3

Figure 2 – Device Model Overview.......................................................................... 9

Figure 3 – FunctionalGroupType........................................................................... 10

Figure 4 – Use of FunctionalGroupType sub-types..................................................... 11

Figure 5 – Use for Sercos FunctionalGroups............................................................ 11

Figure 6 – SercosDeviceType............................................................................... 12

Figure 7 – Standard Entry Point for devices............................................................. 14

Figure 8 – Sercos ParameterType......................................................................... 15

Figure 9 – Example model with Sercos Procedure Command Methods............................ 17

Figure 10 - OPC UA XML Text.............................................................................. 25

 

Tables

Table 1 – Type Definition Table.............................................................................. 5

Table 2 – Examples of DataTypes........................................................................... 6

Table 3 – Transformation rules between Sercos and OPC UA........................................ 8

Table 4 – FunctionalGroupType Definition............................................................... 10

Table 5 – SercosDeviceType Definition................................................................... 12

Table 6 – ProfileSet Definition.............................................................................. 13

Table 7 – ClassSet Definition............................................................................... 13

Table 8 – FunctionGroupSet Definition.................................................................... 13

Table 9 – SercosParameterType Definition.............................................................. 16

Table 10 – Mapping of service result codes............................................................. 18

Table 11 – Full Sercos Server Facet Defintion.......................................................... 19

Table 12– Namespaces used in a Sercos Server....................................................... 20

 

 

Sercos International / OPC Foundation

____________

 

AGREEMENT OF USE

COPYRIGHT RESTRICTIONS

·       This document is provided "as is" by the OPC Foundation and the industry association Sercos International e.V. (hereinafter referred to as "Sercos International").

·       Right of use for the Mapping Document is restricted to the Mapping Document.

·       Right of use for the Mapping Document will be granted without cost exclusively to any OPC Foundation or any Sercos International member.

·       The Mapping 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 Sercos International 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 Sercos International 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 the Mapping Document.

·       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 Sercos International.

 

PATENTS

The attention of adopters is directed to the possibility that compliance with or adoption of OPC Foundation or Sercos International specifications may require use of an invention covered by patent rights. OPC Foundation or Sercos International shall not be responsible for identifying patents for which a license may be required by any OPC or Sercos specification, or for conducting legal inquiries into the legal validity or scope of those patents that are brought to its attention. OPC and Sercos 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 SERCOS INTERNATIONAL 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 SERCOS INTERNATIONAL 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 Sercos International 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 Sercos International 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 the State of Minnesota, excluding its choice or law rules.

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.

ISSUE REPORTING

The OPC Foundation strives to maintain the highest quality standards for its published specifications; hence they undergo constant review and refinement. Readers are encouraged to report any issues and view any existing errata here: HTUhttp://www.opcfoundation.org/errataUTH


1     Scope

This specification has been created by Sercos International as part of the machinery initiative, which was started between the OPC Foundation, Sercos International and the ODVA in order to facilitate the integration of machinery with the production domain.

In today’s automation systems Sercos devices from many different manufacturers have to be integrated, resulting in effort for installation, version management and device operation. This challenge can be faced best with an open and standardized Sercos device model and well-defined profiles for different device types and the functionality they provide in machining systems and automation applications.

This specification is an extension of the OPC UA Devices specification and defines the information model to represent and access Sercos devices that are part of high-performance machines and other automation applications.

2     Reference documents

The following documents, in whole or in part, are normatively referenced in this document and are indispensable for its application. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.

Sercos the automation bus: General Overview and Archtecture

https://wiki.sercos-service.org/current-sys/wiki/images/current-images/e/e7/General_Overview_and_ArchitectureV1.3.1-1.3.pdf

Sercos the automation bus: Generic Device Profile

https://wiki.sercos-service.org/current-sys/wiki/images/current-images/3/38/Generic_Device_Profile_V1_3.1-1.3.pdf

Sercos the automation bus: Communication Protocol

https://wiki.sercos-service.org/current-sys/wiki/images/current-images/7/72/Communication_Protocol_V1.3.1-1.12.pdf

Sercos the automation bus: Communication Profile

https://wiki.sercos-service.org/current-sys/wiki/images/current-images/4/42/Communication_Profile_V1.3.1-1.6.pdf

Sercos the automation bus: Internet Protocol Services

https://wiki.sercos-service.org/current-sys/wiki/images/current-images/4/4f/Internet_Protocol_Services_V1.3.1-1.2.pdf

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

http://www.opcfoundation.org/UA/Part100/

OPC 10000-1, OPC UA Specification – Part 1: Overview and Concepts.

http://www.opcfoundation.org/UA/Part1/

OPC 10000-3, OPC UA Specification – Part 3: Address Space Model.

http://www.opcfoundation.org/UA/Part3/

OPC 10000-5, OPC UA Specification – Part 5: Information Model.

http://www.opcfoundation.org/UA/Part5/

OPC 10000-7, OPC UA Specification – Part 7: Profiles.

http://www.opcfoundation.org/UA/Part7/

OPC 10000-8, OPC UA Specification – Part 8: Data Access.

http://www.opcfoundation.org/UA/Part8/

3     Terms, definitions, and abbreviations

3.1      Use of terms

Defined terms of OPC UA specifications, types and their components defined in OPC UA specifications and in this specification are highlighted with italic in this specification.

3.2      Terms and definitions

For the purposes of this document, the terms and definitions given in the OPC UA Specifications OPC 10000-1, OPC 10000-3, OPC 10000-8 and the OPC UA for Devices Companion Specification as well as the following apply.

3.3      OPC UA for Sercos Information model terms

3.3.1   Sercos Profile

A Sercos Profile defines the complete behavior of certain functionality and their extensions including all appropriate parameters.

3.3.2   Sercos Device

A Sercos Device provides access to the all Sercos Parameters of a device using the defined Sercos Function Groups and Sercos Classes using the Sercos real-time protocol, the S/IP protocol or OPC UA directly.

3.3.3   Sercos Function Group

A Sercos Function Group is a group of different Sercos Parameters which comprise and describe one functionality.

3.3.4   Sercos Class

A Sercos Class defines mandatory parameters and mandatory functionality. Usally, the Sercos Class is a sub-set of one ore more Sercos Function Groups. For instance, the class “Drive Velocity” of Function Specific Profile (FSP) Drive represents the velocity operating mode of a drive. All parameters within this class are necessary to implement this functionality and therefore mandatory.

3.3.5   Sercos Parameter (32-Bit IDN)

A Sercos Parameter includes the device data structure that can be read or written.

All Sercos Parameters obey a defined notation system as naming rule. The corresponding notation is as follows:

<S/P>-<PS>-<DBN>.<SI>.<SE>

For Example: S-0-1301.0.1

The <S/P> specifies whether the Sercos Parameter is a standardized parameter (S) or a product-specified parameter (P). S-parameters are parameters defined by Sercos International and therefore have the same meaning and functionality for all Sercos devices independent of the manufacturer and product type (for more information see Sercos General Overview and Architecture, part 7).

Parameter Set (<PS>) is the set index of the specific parameter. Sercos specifies currently IDNs with parameter set 0 only.

Data Block Number (<DBN>) is the identification number for the parameter.

Structure Instance (<SI>) specifies the index of a structure (array). This serves to address the structure of the same type within one sub-device. There are 255 instances of the same structure possible in one sub-device.

Structure Element (<SE>) specifies the element within the Structure Instance.

The Sercos Parameters of any device can be identified with its 32-Bit identification number (IDN) in format e.g. S-0-0047.0.0 or S-0-0047 (see Figure 1).

path13

Figure 1 – Sercos 32 Bit IDN structure

 

3.3.6   Sercos Profile Description Markup Language (SPDML)

The Sercos Profile description markup language is a markup language that contains Sercos defined tags to list all profiles that a Sercos device supports, in the form of a text (XML) file.

3.4      Abbreviations and symbols

DBN             Data Block Number

FSP             Function Specific Profile

GDP             Generic Device Profile

IDN              Identification Number (of a Sercos Parameter)

PS               Parameter Set

SCP             Sercos Communication Profile

SE               Structure Element

SI                Structure Instance

S/IP             Sercos IP

SPDML         Sercos Profile Description Language

XML             Extensible Markup Language

4     Fundamentals

4.1      Introduction to Sercos

Sercos (Serial Realtime Communication System) is a digital automation bus that interconnects motion controls, drives, I/Os, sensors and actuators for numerically controlled or motion controlled machines and systems. It is designed for high-speed serial communication of standardized real-time data over a noise-immune, fiber optic ring (Sercos I & II) or Industrial Ethernet cable (Sercos III). Sercos is an international standard defined in the IEC61784/ 61158 standard series.

Sercos III is the open, IEC-standardized third-generation of Sercos that uses Industrial Ethernet for real-time control, combining the best of both Ethernet and previous Sercos designs to provide the highly deterministic bi-directional real time motion and I/O control required by modern production equipment. It overcomes the wasted bandwidth in other TCP/IP-based Ethernet bus solutions, because it is based directly on Ethernet frames, defining a new, registered EtherType for Sercos. In addition to real-time communications between all drives and the motion control, Sercos III provides rich I/O communication capabilities, while also enabling other protocols, such as EtherNet/IP, TCP/IP, UDP and others, to be transmitted over the same Ethernet network efficiently in parallel with Sercos real-time communication or even without Sercos real-time communication.

Sercos Parameters can be accessed in different ways, e.g. by using:

·      a Sercos master device and the Sercos real-time protocol providing cyclic and acyclic services to exchange data with Sercos (slave) devices,

·      an S/IP client and the S/IP protocol providing access to all data of Sercos devices which incorporate an S/IP server using the TCP/IP and UDP/IP protocol, not requiring a Sercos master and the Sercos real-time protocol, but also working in parallel to the Sercos real-time protocol,

·      an OPC UA server integrated in a Sercos (slave) device to provide direct OPC UA access to a Sercos device, not requiring a Sercos master and the Sercos real-time protocol, but also working in parallel to the Sercos real-time protocol.

4.2      OPC UA

The main use case for OPC standards is the online data exchange between devices and HMI or SCADA systems using Data Access functionality. In this use case the device data is provided by an OPC server and is consumed by an OPC client integrated into the HMI or SCADA system. OPC DA provides functionality to browse through a hierarchical namespaces containing data items and to read, write and to monitor these items for data changes. The classic OPC standards are based on Microsoft COM/DCOM technology for the communication between software components from different vendors. Therefore classic OPC server and clients are restricted to Windows PC based automation systems.

OPC UA incorporates all features of classic OPC standards like OPC DA, A&E and HDA but defines platform independent communication mechanisms and generic, extensible and object-oriented modelling capabilities for the information a system wants to expose.

The OPC UA network communication part defines different mechanisms optimized for different use cases. The current version of OPC UA is defining an optimized binary protocol for high performance intranet communication as well as Web Services. It allows adding new protocols in the future. Features like security, access control and reliability are directly built into the transport mechanisms. Based on the platform independence of the protocols, OPC UA servers and clients can be directly integrated into devices and controllers.

The OPC UA Information Model provides a standard way for Servers to expose Objects to Clients. Objects in OPC UA terms are composed of other Objects, Variables and Methods. OPC UA also allows relationships to other Objects to be expressed.

The set of Objects and related information that an OPC UA Server makes available to Clients is referred to as its AddressSpace. The elements of the OPC UA Object Model are represented in the AddressSpace as a set of Nodes described by Attributes and interconnected by References. OPC UA defines eight classes of Nodes to represent AddressSpace components. The classes are Object, Variable, Method, ObjectType, VariableType, DataType, ReferenceType and View. Each NodeClass has a defined set of Attributes.

This specification makes use of almost all OPC UA NodeClasses.

Objects are used to represent real-world entities such as Devices and (communication) Networks as well as software entities such as Blocks. An Object is associated to a corresponding ObjectType that provides definitions for that Object.

Variables are used to represent values. Two categories of Variables are defined, Properties and DataVariables.

Properties are Server-defined characteristics of Objects, DataVariables and other Nodes. Properties are not allowed to have Properties defined for them. Examples for Properties of Objects are the device serial number and the block tag.

DataVariables represent the contents of an Object. DataVariables may have component DataVariables. This is typically used by Servers to expose individual elements of arrays and structures. This specification uses DataVariables to represent the Parameters of both Blocks and Devices.

4.3      Conventions used in this document

4.3.1   Conventions for Node descriptions

Node definitions are specified using tables (See Table 1)

Table 1 – Type Definition Table

Attribute

Value

Attribute name

Attribute value. If it is an optional Attribute that is not set “--“ will be used.

 

 

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

ReferenceType name

NodeClass of the TargetNode.

BrowseName of the target Node. If the Reference is to be instantiated by the server, then the value of the target Node’s BrowseName is “--“.

Attributes of the referenced Node, only applicable for Variables and Objects.

Referenced ModellingRule of the referenced Object.

Notes –

Notes referencing footnotes of the table content.

 

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 may 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. In Table 2 examples are given.

Table 2 – Examples of DataTypes

Notation

Data­Type

Value­Rank

Array­Dimensions

Description

Int32

Int32

-1

omitted or NULL

A scalar Int32

Int32[]

Int32

1

omitted or {0}

Single-dimensional array of Int32 with an unknown size

Int32[][]

Int32

2

omitted or {0,0}

Two-dimensional array of Int32 with unknown sizes for both dimensions

Int32[3][]

Int32

2

{3,0}

Two-dimensional array of Int32 with a size of 3 for the first dimension and an unknown size for the second dimension

Int32[5][3]

Int32

2

{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

Int32{Any}

Int32

-2

omitted or NULL

An Int32 where it is unknown if it is scalar or  array with any number of dimensions

Int32{ScalarOrOneDimension}

Int32

-3

omitted or NULL

An 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 NodeId of a TypeDefinitionNode, i.e. the specified Node points with a HasTypeDefinition Reference to the corresponding TypeDefinitionNode. The symbolic name of the NodeId is used in the table.

·      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.

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.

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

4.3.2   NodeIds and BrowseNames

4.3.2.1       NodeIds

This “OPC UA for Sercos Devices Companion Specification” is mandatory using String as IdentifierType for all Objects / instance NodeIds and any NodeIds, e.g. Numeric, for the ObjectType 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.

In this “OPC UA for Sercos Devices companion specification”, the Identifier for each Node starts with one out of the three possible connection / addressing types

·      Topological (defined in Sercos Communication Profile Specification).

The Sercos topology index (topological address) describes the position of a slave (device) in a Sercos network. It uses a daisy chain numeration starting with value 1 at the first slave behind the master.

·      Sercos (defined in Sercos Communication Profile Specification).

The Sercos address is a freely selectable address of a slave (device) in the range between 1 and 511. It has to be unique in the Sercos network.

·      SercosIP (defined in Sercos Internet Protocol Services Specification).

This is the IP address of a Sercos device within an IP network, e.g. Sercos network or “non-Sercos” network.

Each connection type has its own NodeId composition that can be explained as follows. Each of the following examples addresses the variable MinValue from parameter S-0-0001 (SercosParameterType).

Topological:

Topological,[Sercos Master No.], [Sercos Topological Address]

e.g.  Topological,0,1.ParameterSet.”S-0-0001”.MinValue

Sercos:

Sercos,[Sercos Master No.], [Sercos Slave Address]

e.g.  Sercos,0,1.ParameterSet.”S-0-0001”.MinValue

SercosIP:

SercosIP,[IP Address], [SlaveIndex], [SlaveExtension]

e.g.  SercosIP,”192.168.0.11”,0,0.ParameterSet.”S-0-0001”.MinValue

(The SlaveIndex will be derefered to a SlaveAddress using the IDN S-0-1046. For further information please refer to the Sercos Communication Profile Specification.)

The namespace URI for Sercos Types is “http://sercos.org/UA/”.

The namespace URI for Sercos Instances is arbitrary, e.g. “http://[YourCompanyName.com]/UA/Sercos/”.

4.3.2.2       BrowseNames

The text part of the BrowseNames for all Nodes defined in this specification is specified in the tables defining the Nodes. The NamespaceIndex for all BrowseNames defined in this specification is server specific and depends on the position of the namespace URI in the server NamespaceArray.

4.3.3   Data types and lengths transformation between Sercos and OPC UA

In order to access data of Sercos devices via OPC UA, data types and lengths are transformed between Sercos and OPC UA. Table 3 shows the data types and data lengths transformation rules between Sercos and OPC UA.

Table 3 – Transformation rules between Sercos and OPC UA

Sercos

OPC UA

Data Type

Data Length

Data Type

Extended Character Set

1 Octet List

String

Floating-Point number

4 Octet

Float

8 Octet

Double

Integer

2 Octet

Int16

4 Octet

Int32

8 Octet

Int64

Unsigned Integer

or

Binary Number

1 Octet

Byte

2 Octet

UInt16

4 Octet

UInt32

8 Octet

UInt64

Sercos Time

8 Octet

UtcTime

The Sercos list data types are transformed analogue to the single data types, e.g. S-0-0017 (Data type: Integer, Data length: 4 Octed list) is transformed to an array of Int32.                                        

 

5     Sercos Information Model

5.1      General

Figure 2 depicts the main ObjectTypes of the Sercos device model and their relationships. The drawing is not intended to be complete. For simplicity only a few components and relations were captured so as to give an overview of the overall structure.

Figure 2 – Device Model Overview

The symbols in this drawing are according to the OPC UA symbol elements. Figure 2 shows the ObjectTypes used in this specification as well as some elements from other specifications that help understand some modelling decisions. The upper grey box shows the OPC UA base information model from which the TopologyElementType and ProtocolType are derived. The grey box in the second level shows the main ObjectTypes from the OPC UA for Devices Companion Specification. The grey box in third level shows the Sercos OPC UA information model that this specification introduces. The components of those ObjectTypes are illustrated only in an abstract way in this overall figure. The grey box in the fourth level shows an example of a basic drive model.

TopologyElementType is the base ObjectType for elements in a device topology. It introduces Parameters (ParameterSet) and Methods (not shown). This specification also defines a functional grouping concept to provide alternative viewpoints.

A class of devices is represented by the DeviceType ObjectType. This includes predefined elements to describe and identify a device. SercosDeviceType extends the DeviceType. Therefore the elements are inherited from FunctionalGroupType, TopologyElementType and DeviceType. All OPC UA mandatory elements are implemented.

SercosProtocolType represents the Sercos communication protocol implemented by the TopologyElement.

 

5.2      SercosProfileType, SercosClassType and SercosFunctionGroupType

FunctionalGroupType is extended (inheritance) with the types SercosProfileType, SercosClassType and SercosFunctionGroupType according to the Sercos Information Model as shown in Figure 3. It is formally defined in Table 4.

Figure 3 – FunctionalGroupType

Table 4 – FunctionalGroupType Definition

Attribute

Value

 

BrowseName

FunctionalGroupType

 

IsAbstract

False

 

References

NodeClass

BrowseName

TypeDefinition

ModellingRule

Subtype of the FolderType defined in OPC UA specification OPC 10000-5

Inherit the Properties of the FunctionalGroupType.

 

HasSubType

ObjectType

SercosProfileType

Defined in Clause 5.2

 

HasSubType

ObjectType

SercosClassType

Defined in Clause 5.2

 

HasSubType

ObjectType

SercosFunctionGroupType

Defined in Clause 5.2

 

 

SercosProfileType represents the type of Sercos Profiles. All SercosProfileType instances of one device are components of the ProfileSet object of SercosDeviceType (see Figure 2, details are explained in 5.3).

SercosClassType represents the type of Sercos Classes. All SercosClassType instances of one device are components of the ClassSet object of SercosDeviceType (see Figure 2, details are explained in 5.3).

SercosFunctionGroupType represents the type of Sercos Function Groups. All SercosFunctionGroup instances of one device are components of the FunctionGroupSet object of SercosDeviceType (see Figure 2, details are explained in 5.3).

SercosProfileType instances have “Organizes” References to the Sercos Profile related SercosClassType and SercosFunctionGroupType instances.

SercosClassType and SercosFunctionGroupType instances have “Organizes” References to the Sercos Class and Sercos Function Group-related SercosParameterType instances (defined in 5.5).

Instance names of SercosProfileType, SercosClassType and SercosFunctionGroupType shall be taken from the current name convention used in the SPDML standard (provided by Sercos International).

The examples in Figure 4 and Figure 5 illustrate the use of FunctionalGroupType sub-types.

Figure 4Use of FunctionalGroupType sub-types

Figure 5 Use for Sercos FunctionalGroups

5.3      SercosDeviceType

This ObjectType defines the structure of the Sercos Device Object. Figure 6 shows the SercosDeviceType. It is formally defined in Table 5.

 

Figure 6 – SercosDeviceType

 

 

Table 5 – SercosDeviceType Definition

Attribute

Value

BrowseName

SercosDeviceType

IsAbstract

False

References

NodeClass

BrowseName

TypeDefinition

ModellingRule

Inherit the Properties of the TopologyElementType defined in OPC UA for Devices companion specification.

Inherit the Properties of the DeviceType defined in OPC UA for Devices companion specification.

 

HasComponent

Object

ParameterSet

FunctionalGroupType

Mandatory

HasComponent

Object

ProfileSet

FunctionalGroupType

Mandatory

HasComponent

Object

ClassSet

FunctionalGroupType

Mandatory

HasComponent

Object

FunctionGroupSet

FunctionalGroupType

Mandatory

 

The following Properties extend the OPC UA model according to the Sercos Information Model. They are mandatory for all SercosDeviceType instances.

Sercos devices have a device name. There are different Sercos Parameters to get a proper device name. The name of the Sercos device shall be the (operational) data from IDN S-0-1302.0.3 Application Type (e.g., main spindle drive, round axis, X axis, etc.). If this parameter is missing, the outdated data from IDN S-0-0142 (Application Type) may be taken (for compatibility issues). If both are missing, the Sercos device name shall be the data from IDN S-0-1300.0.4 (manufacturer specific device name). In absence of all of them the device name is the combination of the mandatory data of IDN S-0-1300.0.3 (Vendor Code) and IDN S-0-1300.0.5 (Vendor Device ID). The Vendor Code is a unique number assigned to each vendor. The Vendor Device ID is a unique device ID managed by the vendor, that indentifies the component number.

ParameterSet is inherited from TopologyElementType and mandatory for SercosDeviceType instances.

 

ProfileSet includes all Sercos Profile instances that are used within the Sercos device. Currently these are GDP, SCP and FSP. “ProfileSet” object is formally defined in Table 6.

Table 6 – ProfileSet Definition

Attribute

Value

BrowseName

ProfileSet

References

NodeClass

BrowseName

TypeDefinition

ModellingRule

HasTypeDefinition

ObjectType

FunctionalGroupType

 

 

HasComponent

Object

<SercosProfileIdentifier>

SercosProfileType

OptionalPlaceholder

 

ClassSet includes all Sercos Class instances that are used within the Sercos device. “ClassSet” Object is formally defined in Table 7.

Table 7 – ClassSet Definition

Attribute

Value

BrowseName

ClassSet

References

NodeClass

BrowseName

TypeDefinition

ModellingRule

HasTypeDefinition

ObjectType

FunctionalGroupType

 

 

HasComponent

Object

<SercosClassIdentifier>

SercosClassType

OptionalPlaceholder

 

FuntionGroupSet includes all Sercos instances of SercosFunctionGroup. “FunctionGroupSet” is formally defined in Table 8.

Table 8 – FunctionGroupSet Definition

Attribute

Value

BrowseName

FunctionGroupSet

References

NodeClass

BrowseName

TypeDefinition

ModellingRule

HasTypeDefinition

ObjectType

FunctionalGroupType

 

 

HasComponent

Object

<SercosFunctionGroupIdentifier>

SercosFunctionGroupType

OptionalPlaceholder

 

 

 

 

 

 

5.4      DeviceSet Entry Point

To promote interoperability of Clients and Servers, all instantiated Sercos devices shall be aggregated in an Object called “DeviceSet”. For composed Sercos devices (of various components that are also Sercos devices), every Sercos device shall be referenced from the DeviceSet Object. The standard entry point for OPC UA devices is defined in OPC UA for Devices Companion specification.

Figure 7 shows the AddressSpace organisation with OPC UA standard entry point for Sercos devices.

Figure 7 – Standard Entry Point for devices

 

5.5      SercosParameterType

Figure 8 shows the SercosParameterType. The SercosParameterType is a subtype of BaseDataVariableType (defined in OPC UA specification OPC 10000-5) and represents Sercos Parameters.

 

Figure 8 – Sercos ParameterType

 

All the SercosParameterType instances of each device are referenced as component from the ParameterSet Object (BaseObjectType) (defined in OPC UA specification for devices).

Every Sercos Parameter consists of elements. Elements are used to supply all information about the Sercos Parameter. The value of the parameter is transformed according to the DataType transformation rules (defined in 4.3.3). The attribute element contains e.g. read and write access rights and is mapped to the OPC UA attributes (for more information see Sercos Generic Device Profile specification).

 

SercosParameterType is formally defined in Table 9.

 

Table 9 – SercosParameterType Definition

Attribute

Value

BrowseName

SercosParameterType

IsAbstract

False

ValueRank

-2 (-2 = any)

DataType

BaseDataType

References

NodeClass

BrowseName

DataType

TypeDefinition

ModellingRule

Subtype of the BaseDataVariableType defined in OPC UA specification OPC 10000-5.

 

HasProperty

Variable

Attribute

UInt32

PropertyType

Mandatory

HasProperty

Variable

DisplayValue

String

PropertyType

Mandatory

HasProperty

Variable

DisplayMaxValue

String

PropertyType

Optional

HasProperty

Variable

DisplayMinValue

String

PropertyType

Optional

HasProperty

Variable

Exponent

SByte

PropertyType

Optional

HasProperty

Variable

MaxValue

BaseDataType

PropertyType

Optional

HasProperty

Variable

MinValue

BaseDataType

PropertyType

Optional

HasProperty

Variable

ProcedureCommand

Boolean

PropertyType

Optional

 

Attribute (OPC UA Property) represents the Sercos Parameter element Attribute, which contains bit-coded data. Parts of this element are mapped to individual elements as following:

-     Write Protection is mapped to the OPC UA attribute AccessLevel.

-     Decimal Point is mapped to the Exponent variable.

-     Display Format is mapped to the DisplayValue variable.

-     Procedure Command is mapped to the ProcedureCommand variable.

-     DataType and DataLength are mapped to the OPC UA attributes DataType.

DisplayValue represents the converted Sercos Parameter value as an ASCII String. Decimal seperator is formatted with respect to the given “locale” (“locale” is a set of parameters that defines the user's language, country and any special variant preferences).

DisplayMaxValue and DisplayMinValue converts the value of MaxValue and MinValue to String respectively.

Exponent is the optional scaling element of each parameters value (operational data) which applies on DisplayValue. For instance, Exponent of 1E-4 is -4 for both signed and unsigned decimal data types.

MaxValue is the largest numerical value for the parameter, which can be processed by the Sercos device. When, in a write request for the parameter, the MaxValue is exceeded, the value of the parameter is not changed and related OPC UA StatusCode will be returned. The source of MaxValue is the Sercos element Maximum Value of the parameter.

MinValue is the smallest numerical value for the parameter, which can be processed by the Sercos device. When, in a write request for the parameter, the MinValue is exceeded, the value of the parameter is not changed and related OPC UA StatusCode will be returned. The source of MinValue is the Sercos element Minimum Value of the parameter.

ProcedureCommand Variable shows whether the parameter is a Sercos procedure command (=true) or not (= false).

5.5.1   Sercos Parameter Names

The Sercos Parameter Names are corresponding to the IDN notation, e.g. “S-0-1301-0.1”.

5.5.2       Sercos Procedure Commands

Sercos Procedure Commands are accessible as OPC UA Methods. These shall be referenced by the “MethodSet” object. Figure 9 shows an example model with Sercos Procedure Command Methods.

Figure 9 – Example model with Sercos Procedure Command Methods

The Method BrowseName and DisplayName contain the IDN as String, e.g. “P-0-0014”. The invocation of the Sercos Procedure Command Method causes the execution within the Sercos device.

 

 

6     Response code mapping

Table 10 shows the mapping of sercos errors to OPC UA response codes.

Symbolic Id

Description

Bad_NotReadable

The parameter could not be read from the Sercos device.

Bad_NotWriteable

The parameter could not be written to the Sercos device (e.g. wrong variable length).

Bad_NodeIdUnknown

The parameter is not available on the Sercos device.

Bad_NoMatch

The browse path could not be translated to an available parameter.

Bad_TcpServerTooBusy

Request was declined. There are currently too much active requests.

Bad_UserAccessDenied

The parameter is currently write protected and can not be written.

Table 10 – Mapping of service result codes


 

 

7     Profiles and Namespaces

7.1      Namespace Metadata

Table 11 defines the namespace metadata for this specification. The Object is 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 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.

The 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 11 - NamespaceMetadata Object for this Specification

Attribute

 

BrowseName

http://opcfoundation.org/UA/Sercos/

References

BrowseName

DataType

Value

HasProperty

NamespaceUri

String

http://opcfoundation.org/UA/Sercos/

HasProperty

NamespaceVersion

String

1.20

HasProperty

NamespacePublicationDate

DateTime

2017-04-11

HasProperty

IsNamespaceSubset

Boolean

False

HasProperty

StaticNodeIdTypes

IdType[]

{Numeric}

HasProperty

StaticNumericNodeIdRange

NumericRange[]

Null

HasProperty

StaticStringNodeIdPattern

String

Null

 

7.2      OPC UA Conformance Units and Profiles

This chapter defines the corresponding profiles and conformance units for the OPC UA Information Model for Sercos. Profiles are named groupings of conformance units. Facets are profiles that will be combined with other Profiles to define the complete functionality of an OPC UA Server or Client.

Table 12 defines a facet that indicates full support defined by this specification.

Table 12 – Full Sercos Server Facet Defintion

Conformance Unit

Description

Optional/

Mandatory

Sercos DeviceType

Supports the base Sercos device type, the device specific type and the mandatory components of the types.

M

Sercos Device Parameters

Supports the optional components for the Sercos device type like device location or the configuration parameters.

O

Profile

Embedded_DataChange_Subscription_Server_Facet (defined in OPC 10000-7)

M

BaseDevice_Server_Facet (defined in OPC UA DI)

M

 

7.3      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 Address Space 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 specification shall not use the standard namespaces.

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

Table 13– Namespaces used in a Sercos Server

Namespace

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

http://sercos.org/UA/

Namespace for NodeIds and BrowseNames defined in Sercos. The namespace index is server specific.

Mandatory

Vendor specific types and instances

A server may provide vendor specific types or vendor specific instances of devices in a vendor specific namespace.

Mandatory


 

Annex A (normative): Sercos Namespace and Mappings

A.1      Namespace and identifiers for Sercos Information Model

This appendix defines the numeric identifiers for all of the numeric NodeIds defined in this specification. The identifiers are specified in a CSV file with the following syntax:

<SymbolName>, <Identifier>, <NodeClass>

Where the SymbolName is either the BrowseName of a Type Node or the BrowsePath for an Instance Node that appears in the specification and the Identifier is the numeric value for the NodeId.

The NamespaceUri for all NodeIds defined here is http://sercos.org/UA

The CSV released with this version of the specification can be found here:

http://www.opcfoundation.org/UA/Sercos/1.2/Sercos.NodeIds.csv

A computer processable version of the complete Information Model defined in this specification is also provided. It follows the XML Information Model schema syntax defined in OPC 10000 6.

The Information Model Schema released with this version of the specification can be found here:

http://www.opcfoundation.org/UA/Sercos/1.2/Sercos.NodeSet2.xml

 

A.2      Profile URIs for AutoID Information Model

Table A.1 defines the Profile URIs for the SERCOS Information Model companion specification.

Table A.1 - Profile URIs

Profile

Profile URI

Full Sercos Server Facet

http://opcfoundation.org/UA-Profile/External/Sercos/FullSercosServer

 

Annex B (informative): Mapping example

<?xml version="1.0" encoding="utf-8"?>

<UANodeSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:uax="http://opcfoundation.org/UA/2008/02/Types.xsd" xmlns="http://opcfoundation.org/UA/2011/03/UANodeSet.xsd" xmlns:s1="http://[YourCompanyName.com]/UA/Sercos/Types.xsd" xmlns:s2="http://opcfoundation.org/UA/DI/Types.xsd" xmlns:s3="http://sercos.org/UA/Types.xsd" xmlns:ua="http://unifiedautomation.com/Configuration/NodeSet.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

    <NamespaceUris>

        <Uri>http://[YourCompanyName.com]/UA/Sercos/</Uri>

        <Uri>http://opcfoundation.org/UA/DI/</Uri>

        <Uri>http://sercos.org/UA/</Uri>

    </NamespaceUris>

    <Aliases>

        <Alias Alias="Int32">i=6</Alias>

        <Alias Alias="UInt32">i=7</Alias>

        <Alias Alias="String">i=12</Alias>

        <Alias Alias="LocalizedText">i=21</Alias>

        <Alias Alias="Organizes">i=35</Alias>

        <Alias Alias="HasTypeDefinition">i=40</Alias>

        <Alias Alias="HasProperty">i=46</Alias>

        <Alias Alias="HasComponent">i=47</Alias>

    </Aliases>

    <UAObject NodeId="ns=1;i=5009" BrowseName="1:Drive">

        <DisplayName>Drive</DisplayName>

        <References>

            <Reference ReferenceType="HasComponent">ns=1;i=5001</Reference>

            <Reference ReferenceType="HasProperty">ns=1;i=6004</Reference>

            <Reference ReferenceType="HasProperty">ns=1;i=6005</Reference>

            <Reference ReferenceType="Organizes" IsForward="false">ns=1;i=5008</Reference>

            <Reference ReferenceType="HasComponent">ns=1;i=5003</Reference>

            <Reference ReferenceType="HasProperty">ns=1;i=6006</Reference>

            <Reference ReferenceType="HasProperty">ns=1;i=6007</Reference>

            <Reference ReferenceType="HasProperty">ns=1;i=6008</Reference>

            <Reference ReferenceType="HasComponent">ns=1;i=5005</Reference>

            <Reference ReferenceType="HasComponent">ns=1;i=5006</Reference>

            <Reference ReferenceType="HasProperty">ns=1;i=6009</Reference>

            <Reference ReferenceType="Organizes" IsForward="false">ns=2;i=5001</Reference>

            <Reference ReferenceType="HasTypeDefinition">ns=3;i=1001</Reference>

            <Reference ReferenceType="HasProperty">ns=1;i=6010</Reference>

            <Reference ReferenceType="HasProperty">ns=1;i=6011</Reference>

            <Reference ReferenceType="Organizes" IsForward="false">ns=1;i=5011</Reference>

        </References>

    </UAObject>

    <UAObject ParentNodeId="ns=1;i=5009" NodeId="ns=1;i=5001" BrowseName="3:ClassSet">

        <DisplayName>ClassSet</DisplayName>

        <References>

            <Reference ReferenceType="HasTypeDefinition">ns=2;i=1005</Reference>

            <Reference ReferenceType="HasComponent">ns=1;i=5002</Reference>

            <Reference ReferenceType="HasComponent" IsForward="false">ns=1;i=5009</Reference>

        </References>

    </UAObject>

    <UAObject NodeId="ns=1;i=5002" BrowseName="1:PosAxes">

        <DisplayName>PosAxes</DisplayName>

        <References>

            <Reference ReferenceType="Organizes">ns=1;i=6001</Reference>

            <Reference ReferenceType="HasComponent" IsForward="false">ns=1;i=5001</Reference>

            <Reference ReferenceType="HasTypeDefinition">ns=3;i=1003</Reference>

            <Reference ReferenceType="Organizes" IsForward="false">ns=1;i=5007</Reference>

        </References>

    </UAObject>

    <UAVariable SymbolicName="SercosParameterIdentifier" ParentNodeId="ns=1;i=5005" NodeId="ns=1;i=6001" BrowseName="3:&lt;SercosParameterIdentifier>" UserAccessLevel="3" AccessLevel="3">

        <DisplayName>&lt;SercosParameterIdentifier></DisplayName>

        <References>

            <Reference ReferenceType="Organizes" IsForward="false">ns=1;i=5002</Reference>

            <Reference ReferenceType="Organizes" IsForward="false">ns=1;i=5004</Reference>

            <Reference ReferenceType="HasComponent" IsForward="false">ns=1;i=5005</Reference>

            <Reference ReferenceType="HasProperty">ns=1;i=6002</Reference>

            <Reference ReferenceType="HasProperty">ns=1;i=6003</Reference>

            <Reference ReferenceType="HasTypeDefinition">ns=3;i=2001</Reference>

        </References>

    </UAVariable>

    <UAVariable DataType="UInt32" ParentNodeId="ns=1;i=6001" NodeId="ns=1;i=6002" BrowseName="3:Attribute" UserAccessLevel="3" AccessLevel="3">

        <DisplayName>Attribute</DisplayName>

        <References>

            <Reference ReferenceType="HasProperty" IsForward="false">ns=1;i=6001</Reference>

            <Reference ReferenceType="HasTypeDefinition">i=68</Reference>

        </References>

        <Value>

            <uax:UInt32>0</uax:UInt32>

        </Value>

    </UAVariable>

    <UAVariable DataType="String" ParentNodeId="ns=1;i=6001" NodeId="ns=1;i=6003" BrowseName="3:DisplayValue" UserAccessLevel="3" AccessLevel="3">

        <DisplayName>DisplayValue</DisplayName>

        <References>

            <Reference ReferenceType="HasProperty" IsForward="false">ns=1;i=6001</Reference>

            <Reference ReferenceType="HasTypeDefinition">i=68</Reference>

        </References>

        <Value>

            <uax:String>0</uax:String>

        </Value>

    </UAVariable>

    <UAVariable DataType="String" ParentNodeId="ns=1;i=5009" NodeId="ns=1;i=6004" BrowseName="2:DeviceManual">

        <DisplayName>DeviceManual</DisplayName>

        <Description>Address (pathname in the file system or a URL | Web address) of user manual for the device</Description>

        <References>

            <Reference ReferenceType="HasProperty" IsForward="false">ns=1;i=5009</Reference>

            <Reference ReferenceType="HasTypeDefinition">i=68</Reference>

        </References>

    </UAVariable>

    <UAVariable DataType="String" ParentNodeId="ns=1;i=5009" NodeId="ns=1;i=6005" BrowseName="2:DeviceRevision">

        <DisplayName>DeviceRevision</DisplayName>

        <Description>Overall revision level of the device</Description>

        <References>

            <Reference ReferenceType="HasProperty" IsForward="false">ns=1;i=5009</Reference>

            <Reference ReferenceType="HasTypeDefinition">i=68</Reference>

        </References>

    </UAVariable>

    <UAObject ParentNodeId="ns=1;i=5009" NodeId="ns=1;i=5003" BrowseName="3:FunctionGroupSet">

        <DisplayName>FunctionGroupSet</DisplayName>

        <References>

            <Reference ReferenceType="HasComponent">ns=1;i=5004</Reference>

            <Reference ReferenceType="HasTypeDefinition">ns=2;i=1005</Reference>

            <Reference ReferenceType="HasComponent" IsForward="false">ns=1;i=5009</Reference>

        </References>

    </UAObject>

    <UAObject SymbolicName="FG_PosMode" NodeId="ns=1;i=5004" BrowseName="1:FG PosMode">

        <DisplayName>FG PosMode</DisplayName>

        <References>

            <Reference ReferenceType="Organizes">ns=1;i=6001</Reference>

            <Reference ReferenceType="HasComponent" IsForward="false">ns=1;i=5003</Reference>

            <Reference ReferenceType="HasTypeDefinition">ns=3;i=1004</Reference>

            <Reference ReferenceType="Organizes" IsForward="false">ns=1;i=5007</Reference>

        </References>

    </UAObject>

    <UAVariable DataType="String" ParentNodeId="ns=1;i=5009" NodeId="ns=1;i=6006" BrowseName="2:HardwareRevision">

        <DisplayName>HardwareRevision</DisplayName>

        <Description>Revision level of the hardware of the device</Description>

        <References>

            <Reference ReferenceType="HasProperty" IsForward="false">ns=1;i=5009</Reference>

            <Reference ReferenceType="HasTypeDefinition">i=68</Reference>

        </References>

    </UAVariable>

    <UAVariable DataType="LocalizedText" ParentNodeId="ns=1;i=5009" NodeId="ns=1;i=6007" BrowseName="2:Manufacturer">

        <DisplayName>Manufacturer</DisplayName>

        <Description>Model name of the device</Description>

        <References>

            <Reference ReferenceType="HasProperty" IsForward="false">ns=1;i=5009</Reference>

            <Reference ReferenceType="HasTypeDefinition">i=68</Reference>

        </References>

    </UAVariable>

    <UAVariable DataType="LocalizedText" ParentNodeId="ns=1;i=5009" NodeId="ns=1;i=6008" BrowseName="2:Model">

        <DisplayName>Model</DisplayName>

        <Description>Name of the company that manufactured the device</Description>

        <References>

            <Reference ReferenceType="HasProperty" IsForward="false">ns=1;i=5009</Reference>

            <Reference ReferenceType="HasTypeDefinition">i=68</Reference>

        </References>

    </UAVariable>

    <UAObject ParentNodeId="ns=1;i=5009" NodeId="ns=1;i=5005" BrowseName="3:ParameterSet">

        <DisplayName>ParameterSet</DisplayName>

        <References>

            <Reference ReferenceType="HasComponent">ns=1;i=6001</Reference>

            <Reference ReferenceType="HasTypeDefinition">i=58</Reference>

            <Reference ReferenceType="HasComponent" IsForward="false">ns=1;i=5009</Reference>

        </References>

    </UAObject>

    <UAObject ParentNodeId="ns=1;i=5009" NodeId="ns=1;i=5006" BrowseName="3:ProfileSet">

        <DisplayName>ProfileSet</DisplayName>

        <References>

            <Reference ReferenceType="HasComponent">ns=1;i=5007</Reference>

            <Reference ReferenceType="HasTypeDefinition">ns=2;i=1005</Reference>

            <Reference ReferenceType="HasComponent" IsForward="false">ns=1;i=5009</Reference>

        </References>

    </UAObject>

    <UAObject SymbolicName="FSP_Drive" NodeId="ns=1;i=5007" BrowseName="1:FSP Drive">

        <DisplayName>FSP Drive</DisplayName>

        <References>

            <Reference ReferenceType="Organizes">ns=1;i=5004</Reference>

            <Reference ReferenceType="HasComponent" IsForward="false">ns=1;i=5006</Reference>

            <Reference ReferenceType="Organizes">ns=1;i=5002</Reference>

            <Reference ReferenceType="HasTypeDefinition">ns=3;i=1002</Reference>

        </References>

    </UAObject>

    <UAVariable DataType="Int32" ParentNodeId="ns=1;i=5009" NodeId="ns=1;i=6009" BrowseName="2:RevisionCounter">

        <DisplayName>RevisionCounter</DisplayName>

        <Description>An incremental counter indicating the number of times the static data within the Device has been modified</Description>

        <References>

            <Reference ReferenceType="HasTypeDefinition">i=68</Reference>

            <Reference ReferenceType="HasProperty" IsForward="false">ns=1;i=5009</Reference>

        </References>

    </UAVariable>

    <UAVariable DataType="String" ParentNodeId="ns=1;i=5009" NodeId="ns=1;i=6010" BrowseName="2:SerialNumber">

        <DisplayName>SerialNumber</DisplayName>

        <Description>Identifier that uniquely identifies, within a manufacturer, a device instance</Description>

        <References>

            <Reference ReferenceType="HasTypeDefinition">i=68</Reference>

            <Reference ReferenceType="HasProperty" IsForward="false">ns=1;i=5009</Reference>

        </References>

    </UAVariable>

    <UAVariable DataType="String" ParentNodeId="ns=1;i=5009" NodeId="ns=1;i=6011" BrowseName="2:SoftwareRevision">

        <DisplayName>SoftwareRevision</DisplayName>

        <Description>Revision level of the software/firmware of the device</Description>

        <References>

            <Reference ReferenceType="HasTypeDefinition">i=68</Reference>

            <Reference ReferenceType="HasProperty" IsForward="false">ns=1;i=5009</Reference>

        </References>

    </UAVariable>

    <UAObject NodeId="ns=1;i=5017" BrowseName="1:Sercos">

        <DisplayName>Sercos</DisplayName>

        <References>

            <Reference ReferenceType="HasTypeDefinition">i=58</Reference>

            <Reference ReferenceType="Organizes" IsForward="false">i=85</Reference>

            <Reference ReferenceType="HasComponent">ns=1;i=5008</Reference>

            <Reference ReferenceType="HasComponent">ns=1;i=5010</Reference>

            <Reference ReferenceType="HasComponent">ns=1;i=5011</Reference>

        </References>

    </UAObject>

    <UAObject NodeId="ns=1;i=5008" BrowseName="1:Sercos">

        <DisplayName>Sercos</DisplayName>

        <References>

            <Reference ReferenceType="Organizes">ns=1;i=5009</Reference>

            <Reference ReferenceType="HasTypeDefinition">i=61</Reference>

            <Reference ReferenceType="HasComponent" IsForward="false">ns=1;i=5017</Reference>

        </References>

    </UAObject>

    <UAObject NodeId="ns=1;i=5010" BrowseName="1:SercosIP">

        <DisplayName>SercosIP</DisplayName>

        <References>

            <Reference ReferenceType="HasTypeDefinition">i=61</Reference>

            <Reference ReferenceType="HasComponent" IsForward="false">ns=1;i=5017</Reference>

        </References>

    </UAObject>

    <UAObject NodeId="ns=1;i=5011" BrowseName="1:Topological">

        <DisplayName>Topological</DisplayName>

        <References>

            <Reference ReferenceType="Organizes">ns=1;i=5009</Reference>

            <Reference ReferenceType="HasTypeDefinition">i=61</Reference>

            <Reference ReferenceType="HasComponent" IsForward="false">ns=1;i=5017</Reference>

        </References>

    </UAObject>

</UANodeSet>