OPC UA Companion Specification

OPC 40501-1

 

OPC UA for Machine Tools

Part 1: Machine Monitoring and Job Overview

 

 

Release 1.00.0

2020-09-25

 

OPC 40501-1 (1.00.0) is identical with VDMA 40501-1:2020-11
 

 

 

 



 

 


Specification Type:

Industry Standard Specification

Comments:

 

 

 

 

 

Document
Number

OPC 40501-1

 

 

 

Title:

OPC UA for Machine Tools
Part 1: Machine Monitoring and Job Overview

Date:

2020-09-25

 

 

 

 

Version:

Release 1.00.0

Software:

MS-Word

 

 

Source:

OPC 40501-1 - UA CS for Machine Tools Part 1 - Monitoring and Job 1.00.0.docx

 

 

 

 

Author:

VDW e.V.

Status:

Release

 

 

 

 


 


 

CONTENTS

 

1        Scope.................................................................................................................................... 1

1.1          Scope of this Companion Specification........................................................................... 1

1.2          Organizations................................................................................................................ 1

2        Normative references............................................................................................................. 2

3        Terms, abbreviated terms and conventions............................................................................. 3

3.1          Overview...................................................................................................................... 3

3.2          OPC UA for Machine Tools terms................................................................................... 3

3.3          Abbreviated terms........................................................................................................ 5

3.4          Conventions used in this document................................................................................ 5

3.4.1            Conventions for Node descriptions......................................................................... 5

3.4.2            NodeIds and BrowseNames.................................................................................... 6

3.4.2.1       NodeIds............................................................................................. 6

3.4.2.2       BrowseNames.................................................................................... 7

3.4.3            Common Attributes............................................................................................... 7

3.4.3.1       General.............................................................................................. 7

3.4.3.2       Objects.............................................................................................. 7

3.4.3.3       Variables............................................................................................ 8

3.4.3.4       VariableTypes.................................................................................... 8

3.4.3.5       Methods............................................................................................ 8

4        General Information to Machine Tools and OPC UA................................................................. 9

4.1          Introduction to Machine Tools....................................................................................... 9

4.2          Introduction to OPC Unified Architecture....................................................................... 9

4.2.1            What is OPC UA?................................................................................................... 9

4.2.2            Basics of OPC UA.................................................................................................... 9

4.2.3            Information modelling in OPC UA.......................................................................... 10

4.2.3.1       Concepts.......................................................................................... 10

4.2.3.2       Namespaces..................................................................................... 14

4.2.3.3       Companion Specifications................................................................. 14

5        Use Cases............................................................................................................................. 15

5.1          Identify Machines of Different Manufacturers............................................................... 15

5.2          Overview if Production is Running................................................................................ 15

5.3          Overview of Parts in a Job............................................................................................ 15

5.4          Overview of Runtimes for a Job.................................................................................... 15

5.5          Overview of Machine Tool State................................................................................... 15

5.6          Overview of Upcoming Manual Activities...................................................................... 16

5.7          Overview of Errors and Warnings................................................................................. 16

5.8          Providing Data for KPI Calculations............................................................................... 16

5.9          Providing an Overview of Tool Data.............................................................................. 16

6        Machine Tools Information Model Overview.......................................................................... 17

7        General Recommendations for Implementation..................................................................... 23

7.1          Localization................................................................................................................. 23

7.2          Extending the Specification.......................................................................................... 23

7.3          GeneralModelChangeEvent and NodeVersion............................................................... 23

8        OPC UA ObjectTypes............................................................................................................. 24

8.1          MachineToolType........................................................................................................ 24

8.2          Identification............................................................................................................... 24

8.2.1            MachineToolIdentificationType............................................................................. 24

8.2.2            SoftwareIdentificationType................................................................................... 26

8.3          Monitoring.................................................................................................................. 27

8.3.1            MonitoringType................................................................................................... 27

8.3.2            ElementMonitoringType....................................................................................... 28

8.3.3            WorkingUnitMonitoringType................................................................................ 28

8.3.4            LaserMonitoringType........................................................................................... 28

8.3.5            EDMGeneratorMonitoringType............................................................................. 29

8.3.6            SpindleMonitoringType........................................................................................ 29

8.3.7            ChannelMonitoringType....................................................................................... 30

8.3.8            CombinedChannelMonitoringType........................................................................ 30

8.3.9            MachineOperationMonitoringType....................................................................... 31

8.3.10          ChannelModifierType........................................................................................... 31

8.4          Production.................................................................................................................. 32

8.4.1            ProductionType................................................................................................... 32

8.4.2            ProductionJobListType......................................................................................... 32

8.4.3            ProductionJobType.............................................................................................. 33

8.4.4            ProductionProgramType....................................................................................... 34

8.4.5            ProductionActiveProgramType............................................................................. 35

8.4.6            ProductionPartSetType......................................................................................... 35

8.4.7            ProductionPartType............................................................................................. 36

8.4.8            ProductionStateMachineType............................................................................... 37

8.4.9            ProductionJobStateMachineType.......................................................................... 41

8.4.10          ProductionProgramStateMachineType.................................................................. 43

8.4.11          ProductionPartStateMachineType......................................................................... 46

8.4.12          ProductionStatisticsType...................................................................................... 48

8.5          Equipment.................................................................................................................. 48

8.5.1            EquipmentType.................................................................................................... 48

8.5.2            ToolListType........................................................................................................ 48

8.5.3            BaseToolType...................................................................................................... 49

8.5.4            ToolType............................................................................................................. 49

8.5.5            MultiToolType..................................................................................................... 51

8.6          Notification................................................................................................................. 52

8.6.1            NotificationType.................................................................................................. 52

8.6.2            MessagesType..................................................................................................... 52

8.6.3            PrognosisListType................................................................................................ 53

8.6.4            PrognosisType..................................................................................................... 53

8.6.5            MaintenancePrognosisType.................................................................................. 53

8.6.6            ManualActivityPrognosisType............................................................................... 54

8.6.7            PartLoadPrognosisType........................................................................................ 54

8.6.8            PartUnloadPrognosisType..................................................................................... 55

8.6.9            ProcessChangeoverPrognosisType........................................................................ 55

8.6.10          ProductionJobEndPrognosisType.......................................................................... 55

8.6.11          ToolChangePrognosisType.................................................................................... 56

8.6.12          ToolLoadPrognosisType........................................................................................ 56

8.6.13          ToolUnloadPrognosisType.................................................................................... 57

8.6.14          UtilityChangePrognosisType................................................................................. 57

9        OPC UA EventTypes.............................................................................................................. 58

9.1          AlertType.................................................................................................................... 58

9.2          InterruptionConditionType........................................................................................... 58

9.3          NotificationEventType................................................................................................. 59

9.4          ProductionJobTransitionEventType.............................................................................. 59

9.5          ProductionPartTransitionEventType............................................................................. 59

9.6          ProductionProgramTransitionEventType....................................................................... 60

10     OPC UA ConditionClassTypes................................................................................................. 61

10.1       OperatorConditionClassType........................................................................................ 61

10.2       UtilityConditionClassType............................................................................................ 61

10.3       ClampingConditionClassType........................................................................................ 61

10.4       ManualProcessStepConditionClassType........................................................................ 61

10.5       MeasurementConditionClassType................................................................................ 62

10.6       PartMissingConditionClassType.................................................................................... 62

10.7       ProcessIrregularityConditionClassType......................................................................... 62

10.8       ToolBreakageConditionClassType................................................................................. 62

10.9       ToolChangeConditionClassType.................................................................................... 62

11     OPC UA VariableTypes.......................................................................................................... 63

11.1       ToolLifeType................................................................................................................ 63

12     OPC UA DataTypes................................................................................................................ 64

12.1       ChannelState............................................................................................................... 64

12.2       ChannelMode.............................................................................................................. 64

12.3       EDMGeneratorState.................................................................................................... 64

12.4       LaserState................................................................................................................... 65

12.5       MachineOperationMode.............................................................................................. 65

12.6       PartQuality.................................................................................................................. 66

12.7       ProcessIrregularity....................................................................................................... 66

12.8       ToolLifeIndication........................................................................................................ 67

12.9       ToolLocked.................................................................................................................. 68

12.10     ToolManagement........................................................................................................ 68

13     Finding Machine Tools in a Server.......................................................................................... 69

14     Profiles and ConformanceUnits............................................................................................. 70

14.1       ConformanceUnits....................................................................................................... 70

14.2       Profiles....................................................................................................................... 72

14.2.1          Profile list............................................................................................................ 72

14.2.2          Server Facets and Profiles..................................................................................... 72

14.2.2.1     Overview......................................................................................... 72

14.2.2.2     MachineTool Basic Server Profile....................................................... 73

14.2.2.3     MachineTool Basic Secure Server Profile............................................ 73

14.2.2.4     MachineTool Monitoring Server Facet............................................... 73

14.2.2.5     MachineTool Tools Server Facet........................................................ 74

14.2.2.6     MachineTool Tool Life Server Facet................................................... 74

14.2.2.7     MachineTool Production Server Facet................................................ 74

14.2.2.8     MachineTool Production Plan Server Facet........................................ 75

14.2.2.9     MachineTool Errors and Alerts Server Facet....................................... 75

14.2.2.10  MachineTool Prognoses Server Facet................................................. 75

15     Namespaces......................................................................................................................... 76

15.1       Namespace Metadata.................................................................................................. 76

15.2       Handling of OPC UA Namespaces................................................................................. 76

A.1         Namespace and identifiers for MachineTool Information Model.................................... 78

 


 

FIGURES

 

Figure 1 – The Scope of OPC UA within an Enterprise..................................................................... 10

Figure 2 – A Basic Object in an OPC UA Address Space................................................................... 11

Figure 3 – The Relationship between Type Definitions and Instances.............................................. 12

Figure 4 – Examples of References between Objects...................................................................... 13

Figure 5 – The OPC UA Information Model Notation...................................................................... 13

Figure 6 – Instance Example for OPC UA Information Model for Machine Tools............................... 17

Figure 7 – Inheritance Hierarchy of the MachineToolType in the Machine Tools Interface................ 18

Figure 8 – Inheritance Hierarchy of the Identification in the Machine Tools Interface....................... 18

Figure 9 – Inheritance Hierarchy of the Monitoring in the Machine Tools Interface.......................... 19

Figure 10 – Inheritance Hierarchy of the Production in the Machine Tools Interface........................ 20

Figure 11 – Inheritance Hierarchy of the Equipment in the Machine Tools Interface........................ 21

Figure 12 – Inheritance Hierarchy of the Notification in the Machine Tools Interface....................... 22

Figure 13 – Example Instance of SoftwareIdentification in a Machine Tools Server........................... 26

Figure 14 – The States and Transitions of the ProductionStateMachineType.................................... 37

Figure 15 – Instance Example of a MultiToolType Object................................................................ 51

 


TABLES

 

Table 1 – Examples of DataTypes. 5

Table 2 – Type Definition Table. 6

Table 3 – Examples of Other Characteristics. 6

Table 4 – Common Node Attributes. 7

Table 5 – Common Object Attributes. 8

Table 6 – Common Variable Attributes. 8

Table 7 – Common VariableType Attributes. 8

Table 8 – Common Method Attributes. 8

Table 9 – MachineToolType Definition. 24

Table 10 – MachineToolIdentificationType Definition. 24

Table 11 – DeviceClasses for Machine Tools. 25

Table 12 – MachineToolIdentificationType Additional Subcomponents. 25

Table 13 – SoftwareIdentificationType Definition. 27

Table 14 – MonitoringType Definition. 27

Table 15 – MonitoringType Additional Subcomponents. 28

Table 16 – ElementMonitoringType Definition. 28

Table 17 – WorkingUnitMonitoringType Definition. 28

Table 18 – LaserMonitoringType Definition. 29

Table 19 – EDMGeneratorMonitoringType Definition. 29

Table 20 – SpindleMonitoringType Definition. 29

Table 21 – ChannelMonitoringType Definition. 30

Table 22 – Rules for Aggregation of the CombinedChannelMonitoringType. 30

Table 23 – CombinedChannelMonitoringType Definition. 31

Table 24 – MachineOperationMonitoringType Definition. 31

Table 25 – ChannelModifierType Definition. 32

Table 26 – ProductionType Definition. 32

Table 27 – ProductionJobListType Definition. 33

Table 28 – ProductionJobType Definition. 33

Table 29 – ProductionJobType Additional Subcomponents. 34

Table 30 – ProductionProgramType Definition. 35

Table 31 – ProductionActiveProgramType Definition. 35

Table 32 – ProductionPartSetType Definition. 36

Table 33 – ProductionPartSetType Additional Subcomponents. 36

Table 34 – ProductionPartType Definition. 36

Table 35 – ProductionStateMachineType Definition. 38

Table 36 – ProductionStateMachineType Additional Subcomponents. 38

Table 37 – ProductionStateMachineType Attribute values for child Nodes. 39

Table 38 – ProductionStateMachineType Additional References. 40

Table 39 – ProductionJobStateMachineType Definition. 41

Table 40 – ProductionJobStateMachineType Additional References. 43

Table 41 – ProductionProgramStateMachineType Definition. 44

Table 42 – ProductionProgramStateMachineType Additional References. 45

Table 43 – ProductionPartStateMachineType Definition. 46

Table 44 – ProductionPartStateMachineType Additional References. 47

Table 45 – ProductionStatisticsType Definition. 48

Table 46 – EquipmentType Definition. 48

Table 47 – ToolListType Definition. 48

Table 48 – BaseToolType Definition. 49

Table 49 – BaseToolType Additional Subcomponents. 49

Table 50 – ToolType Definition. 50

Table 51 – ToolType Additional Subcomponents. 50

Table 52 – MultiToolType Definition. 52

Table 53 – NotificationType Definition. 52

Table 54 – MessagesType Definition. 52

Table 55 – PrognosisListType Definition. 53

Table 56 – PrognosisType Definition. 53

Table 57 – MaintenancePrognosisType Definition. 54

Table 58 – ManualActivityPrognosisType Definition. 54

Table 59 – PartLoadPrognosisType Definition. 54

Table 60 – PartUnloadPrognosisType Definition. 55

Table 61 – ProcessChangeoverPrognosisType Definition. 55

Table 62 – ProductionJobEndPrognosisType Definition. 56

Table 63 – ToolChangePrognosisType Definition. 56

Table 64 – ToolLoadPrognosisType Definition. 57

Table 65 – ToolUnloadPrognosisType Definition. 57

Table 66 – UtilityChangePrognosisType Definition. 58

Table 67 – AlertType Definition. 58

Table 68 – InterruptionConditionType Definition. 58

Table 69 – NotificationEventType Definition. 59

Table 70 – ProductionJobTransitionEventType Definition. 59

Table 71 – ProductionJobTransitionEventType Additional Subcomponents. 59

Table 72 – ProductionPartTransitionEventType Definition. 60

Table 73 – ProductionProgramTransitionEventType Definition. 60

Table 74 – InterruptionByOperatorConditionType Definition. 61

Table 75 – UtilityConditionClassType Definition. 61

Table 76 – ClampingConditionClassType Definition. 61

Table 77 – ManualProcessStepConditionClassType Definition. 61

Table 78 – MeasurementConditionClassType Definition. 62

Table 79 – PartMissingConditionClassType Definition. 62

Table 80 – ProcessIrregularityConditionClassType Definition. 62

Table 81 – ToolBreakageConditionClassType Definition. 62

Table 82 – ToolChangeConditionClassType Definition. 63

Table 83 – ToolLifeType Definition. 63

Table 84 – ChannelState EnumValues Fields. 64

Table 85 – ChannelState Definition. 64

Table 86 – ChannelMode EnumValues Fields. 64

Table 87 – ChannelMode Definition. 64

Table 88 – EDMGeneratorState EnumValues Fields. 65

Table 89 – EDMGeneratorState Definition. 65

Table 90 – LaserState EnumValues Fields. 65

Table 91 – LaserState Definition. 65

Table 92 – MachineOperationMode EnumValues Fields. 66

Table 93 – MachineOperationMode Definition. 66

Table 94 – PartQuality EnumValues Fields. 66

Table 95 – PartQuality Definition. 66

Table 96 – ProcessIrregularity EnumValues Fields. 67

Table 97 – ProcessIrregularity Definition. 67

Table 98 – ToolLifeIndication EnumValues Fields. 67

Table 99 – ToolLifeIndication Definition. 68

Table 100 – ToolLocked EnumValues Fields. 68

Table 101 – ToolLocked Definition. 68

Table 102 – ToolManagement EnumValues Fields. 68

Table 103 – ToolManagement Definition. 69

Table 104 – ConformanceUnits for Machine Tools. 70

Table 105 – Profile URIs for Machine Tools. 72

Table 106 – MachineTool Basic Server Profile. 73

Table 107 – MachineTool Basic Secure Server Profile. 73

Table 108 – MachineTool Monitoring Server Facet. 73

Table 109 – MachineTool Tools Server Facet. 74

Table 110 – MachineTool Tool Life Server Facet. 74

Table 111 – MachineTool Production Server Facet. 74

Table 112 – MachineTool Production Plan Server Facet. 75

Table 113 – MachineTool Errors and Alerts Server Facet. 75

Table 114 – MachineTool Prognoses Server Facet. 75

Table 115 – NamespaceMetadata Object for this Document. 76

Table 116 – Namespaces used in a Machine Tools Server. 76

Table 117 – Namespaces used in this Document. 77

 


 

 

OPC FOUNDATION, German Machine tool builders’ Association (VDW)

____________

 

AGREEMENT OF USE

COPYRIGHT RESTRICTIONS

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

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

 

PATENTS

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


 


OPC UA for Machine Tools –

 

Part 1: Machine Monitoring and Job Overview

 

 

 

1     Scope

1.1      Scope of this Companion Specification

This document specifies an OPC UA Information Model for the representation of a machine tool. OPC UA for Machine Tools, Part 1 aims at straightforward integration of a machine tool into higher level IT systems. The scope is to create a common interface among machine tools of different technologies, manufacturers and model series. This first part of the OPC UA Companion Specification for Machine Tools aims to provide the basics for such an interface. These allow for monitoring the machine tool and giving an overview of the jobs on it. This information is mostly technology neutral. The OPC UA for Machine Tools interface allows an exchange of information between a machine tool and software systems like MES, SCADA, ERP or data analytics systems.

1.2      Organizations

OPC Foundation

OPC is the interoperability standard for the secure and reliable exchange of data and information in the industrial automation space and in other industries. It is platform independent and ensures the seamless flow of information among devices from multiple vendors. The OPC Foundation is responsible for the development and maintenance of this standard.

OPC UA is a platform independent service-oriented architecture that integrates all the functionality of the individual OPC Classic specifications into one extensible framework. This multi-layered approach accomplishes the original design specification goals of:

·      Platform independence: from an embedded microcontroller to cloud-based infrastructure

·      Secure: encryption, authentication, authorization and auditing

·      Extensible: ability to add new features including transports without affecting existing applications

·      Comprehensive information modelling capabilities: for defining any model from simple to complex

German Machine Tool Builders’ Association (VDW)

The VDW, headquartered in Frankfurt am Main, Germany, represents the German machine tool industry. Together with the Sector Association Machine Tools and Manufacturing Systems within the VDMA (German Engineering Federation) the VDW comprises about 290 predominantly mid-tier companies. They account for approximately 90 per cent of the sector’s total turnover, which most recently exceeded 17 billion euros.

The VDW represents its members to the public, the politicians, business associates and the academic community, both nationally and internationally. It is also a can-do service provider for its members when it comes to opening up sales markets, keeping the business cycle under observation and acquiring market data, handling technical, commercial and legal issues, cooperation with the international machine tool industry, standardisation and recruitment of new talent. On the basis of in-depth sectoral knowledge, it provides information, consultancy and support in response to individual questions and problems. Permanent committees and working groups guarantee the exchange of sector-specific views and empirical feedback. We provide regular information for our members on topical technical, commercial and legal issues.

In this context VDW is interested in increasing the innovation and competitive capacity of machine tool builders and manufacturers of machine tool controllers by introducing a unified machine tool interface. This universal interface is understood as essential prerequisite towards digital manufacturing

 

2     Normative references

The following referenced documents are indispensable for the application 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/UA/Part1/

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

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

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

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

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

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

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

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

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

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

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

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

OPC 10000-8, OPC Unified Architecture - Part 8: Data Access

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

OPC 10000-9, OPC Unified Architecture - Part 9: Alarms and Conditions

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

OPC 10001-1, OPC Unified Architecture V1.04 - Amendment 1: AnalogItem Types

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

OPC 10001-7, OPC Unified Architecture V1.04 - Amendment 7: Interfaces and AddIns

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

OPC 10001-13, OPC Unified Architecture V1.04 - Amendment 13: Ordered Lists

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

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

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

OPC 10000-200, OPC Unified Architecture – Part 200: Industrial Automation

http://opcfoundation.org/UA/IA/

OPC 40001-1, OPC UA for Machinery – Part 1: Basic Building Blocks

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

 

3     Terms, abbreviated terms and conventions

3.1      Overview

It is assumed that basic concepts of OPC UA information modelling are understood in this document. This document will use these concepts to describe the Machine Tools 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-9, OPC 10000-100, OPC 10000-200, OPC 40001-1 as well as the following apply.

Note that OPC UA terms and terms defined in this document are italicised in the document.

3.2      OPC UA for Machine Tools terms

3.2.1        

Alert

defined message indicating noteworthy information for the operator and for historic data
An alert can have three subcategories: Error - indicating a state that blocks operation of the process.
Warning - indicating a state that requires attention, it can prevent operation in indicated way, however it is generally not blocking operation of the process.
Message - display of information the machine tool builder deemed necessary to display, neither blocking or reducing operational capability.

3.2.2        

Channel

runtime component of the CNC which executes an NC program
This execution may happen in Block Sequence mode (execution of the next NC command starts as soon as the previous has completed), or Single Block Mode (NC channels stops and waits for a NC Start signal to resume executing the next NC program block). A channel contains an assigned set of axes which can be moved in a synchronised interpolated manner. Auxiliary axes may also be assigned to a channel which will usually be commanded in a synchronized uninterpolated manner. An active NC channel runs current NC programs which relate to the workpiece etc. Depending on the machine there may be several active NC channels running simultaneously.

3.2.3        

Controller

hybrid hardware/software systems that are used for controlling machines

EXAMPLE: Distributed control systems (DCS), programmable logic controllers (PLC), numerical controller (NC), and supervisory control and data acquisition (SCADA) systems.

[SOURCE: ISO 16100-1:2009, 3.7]

3.2.4        

Machine Tool

mechanical device which is fixed (i.e. not mobile) and powered (typically by electricity and compressed air), typically used to process workpieces by selective removal/addition of material or mechanical deformation

[SOURCE: ISO 14955-1:2017, 3.16, modified: Note to entry deleted]

3.2.5        

Manual Tool Change

manual action of inserting a tool into the machine as opposed to an Automatic Tool Change
There are two common reasons this is done or necessary: 1) tool life of one group of tools has expired and machining cannot continue until a new tool with sufficient tool life for the next operation is inserted (causing a tool change) 2) a tool for a given job is not available (or defined as "hand tool" meaning it needs to be inserted/changed manually at the time it is needed) and shall be provisioned.

3.2.6        

Multitool

unit of different tools, usually used in order to have several tools available in-process without requiring explicit tool-changes
Typical applications are in turning, when one indexed position of the tool revolver holds several outer-diameter cutting inserts and boring tools, such that a tool change process can quickly complete by merely readjusting the CNC setpoint position for the tool compensation.

3.2.7        

Part

workpiece of the machine which is worked on with the machine’s technology
This may be for the purpose of machining, measuring or others, depending on the machine type.

3.2.8        

Production Plan

list of all job elements a specific machine knows about
EXAMPLE: All jobs which were transferred to the machine in some way.

3.2.9        

Job

also: production job; concrete implementation of one or more programs or recipes by means of a given order
provides one to many production programs and the instruction to produce one to many parts; offers the possibility to aggregate the manufacturing of multiple parts or the manufacturing of a part through multiple programs

3.2.10      

Program

also: production program; list of operations that the controller performs in sequence;
usually a machine-readable file, such as an NC program, which is needed for the controller to fulfil the job; NC programs may also carry a hierarchy of further sub-(NC)programs

3.2.11      

Replacement Tool

tool with equivalent (identical) process capabilities (size and functionality) to an existing tool; used by the controller if the designated tool is locked due to wear, done automatically and/or after user interaction

3.2.12      

Stacklight

visual machine state indicator; consists of one or more lamps stacked on top of one another, each having a specific, in most cases different colour
The combination of on/off/blinking lights in the stacklight corresponds to a machine state. The ordering of the colours is counted from the base of the stacklight unit.

3.2.13      

Tool

exchangeable component used in a machine tool to execute the machining process
EXAMPLE: May be drills, ball milling heads, cutting inserts, pinching tools and so forth, or even a non-contact tool like a processing laser.

3.2.14      

Utility

umbrella term for all media (pressurized air, coolant, lubrication, etc.) and consumables (filters, space in chip carts, etc.) necessary for running the machine.
Tools as consumables are excluded from this definition as tools are in their own class of complexity and therefore defined separately.

3.3      Abbreviated terms

CNC            Computerized Numerical Control

EDM           Electrical Discharge Machining

ERP            Enterprise Resource Planning

HMI             Human Machine Interface

KPI             Key Performance Indicator

MES            Manufacturing Execution System

MO             Mode of Operation

NC              Numerical Control

OEE            Overall Equipment Effectiveness

SCADA        Supervisory Control and Data Acquisition

VDW           Verein Deutscher Werkzeugmaschinenfabriken e.V. (German Machine Tool Builders’ Association)

3.4     Conventions used in this document

3.4.1    Conventions for Node descriptions

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

Notation

Data­Type

Value­Rank

Array­Dimensions

Description

0:Int32

0:Int32

-1

omitted or null

A scalar Int32.

0:Int32[]

0:Int32

1

omitted or {0}

Single-dimensional array of Int32 with an unknown size.

0:Int32[][]

0:Int32

2

omitted or {0,0}

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

0:Int32[3][]

0: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.

0:Int32[5][3]

0: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.

0:Int32{Any}

0:Int32

-2

omitted or null

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

0:Int32{ScalarOrOneDimension}

0: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 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 Other columns may be omitted and only a Comment column is introduced to point to the Node definition.

Table 2 – Type Definition Table

Attribute

Value

Attribute name

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

 

 

References

NodeClass

BrowseName

DataType

TypeDefinition

Other

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

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.

 

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 Characteristics

Name

Short Name

Description

0:Mandatory

M

The Node has the Mandatory ModellingRule.

0:Optional

O

The Node has the Optional ModellingRule.

0:MandatoryPlaceholder

MP

The Node has the MandatoryPlaceholder ModellingRule.

0:OptionalPlaceholder

OP

The Node has the OptionalPlaceholder ModellingRule.

ReadOnly

RO

The Node AccessLevel has the CurrentRead bit set but not the CurrentWrite bit.

ReadWrite

RW

The Node AccessLevel has the CurrentRead and CurrentWrite bits set.

WriteOnly

WO

The 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.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 Annex A.

If the BrowseName is not defined by this document, a namespace index prefix like ‘0:EngineeringUnits’ or ‘2:DeviceRevision’ is added to the BrowseName. This is typically necessary if a Property of another specification is overwritten or used in the OPC UA types defined in this document. Table 117 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 document or if it is server-specific.

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

Table 4 – Common Node Attributes

Attribute

Value

DisplayName

The 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 are server-specific.

Description

Optionally a server-specific description is provided.

NodeClass

Shall reflect the NodeClass of the Node.

NodeId

The NodeId is described by BrowseNames as defined in 3.4.2.1.

WriteMask

Optionally 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 document.

UserWriteMask

Optionally the UserWriteMask Attribute can be provided. The same rules as for the WriteMask Attribute apply.

RolePermissions

Optionally server-specific role permissions can be provided.

UserRolePermissions

Optionally the role permissions of the current Session can be provided. The value is server-specific and depends on the RolePermissions Attribute (if provided) and the current Session.

AccessRestrictions

Optionally server-specific access restrictions can be provided.

 

3.4.3.2       Objects

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

Table 5 – Common Object Attributes

Attribute

Value

EventNotifier

Whether the Node can be used to subscribe to Events or not is server-specific.

 

3.4.3.3       Variables

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

Table 6 – Common Variable Attributes

Attribute

Value

MinimumSamplingInterval

Optionally, a server-specific minimum sampling interval is provided.

AccessLevel

The access level for Variables used for type definitions is server-specific, for all other Variables defined in this document, the access level shall allow reading; other settings are server-specific.

UserAccessLevel

The value for the UserAccessLevel Attribute is server-specific. It is assumed that all Variables can be accessed by at least one user.

Value

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

Historizing

The value for the Historizing Attribute is server-specific.

AccessLevelEx

If 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 document, the Attributes named in Table 7 shall be set as specified in the table. The definitions for the Attributes can be found in OPC 10000-3.

Table 7 – Common VariableType Attributes

Attributes

Value

Value

Optionally 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 document, 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 Method Attributes

Attributes

Value

Executable

All Methods defined in this document shall be executable (Executable Attribute set to “True”), unless it is defined differently in the Method definition.

UserExecutable

The value of the UserExecutable Attribute is server-specific. It is assumed that all Methods can be executed by at least one user.

 


 

4     General Information to Machine Tools and OPC UA

4.1      Introduction to Machine Tools

According to ISO standards, a “machine tool is a mechanical device, which is fixed and powered, typically used to process workpieces by selective removal/addition of material or mechanical deformation (…). Machine tools operation can be mechanical, controlled by humans or by computers (…)”. There is a great variety of metalworking machine tools: milling machines, lathes, sheet metal forming machines, EDM machines and additive manufacturing machines are just some examples. Stainless steel, aluminium, titanium and copper are some of the main metals processed by these machine tools. In addition, to manufacture components for key industries like automotive, aerospace, energy and medical technology, machine tools enable the production of all the other machines, including themselves. This is why we call them the mother machines.

For the scope of the standard, mainly machine tools for machining metal and other hard materials were considered. Most of these machine tools are equipped with a CNC Control and a PLC. In order to represent these machine tools with a common OPC UA interface, several use cases were considered.

4.2      Introduction to OPC Unified Architecture

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 the MachineTool model, 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 1.

Figure 1 – 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 2.

Figure 2 – 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 3 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 3 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 3 – 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 4 depicts several References, connecting different Objects.

Figure 4 – Examples of References between Objects

The figures above use a notation that was developed for the OPC UA specification. The notation is summarised in Figure 5. 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 5 – 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 expected 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. Namespaces in OPC UA have a globally unique string called a NamespaceUri and a locally unique integer called a NamespaceIndex. The NamespaceIndex is only unique within the context of a Session between an OPC UA Client and an OPC UA Server. The Services defined for OPC UA use the NamespaceIndex to specify the Namespace for qualified values.

There are two types of values in OPC UA that are qualified with Namespaces: NodeIds and QualifiedNames. NodeIds are globally unique identifiers for Nodes. This means the same Node with the same NodeId can appear in many Servers. This, in turn, means Clients can have built in knowledge of some 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, and potentially also well-defined Objects as entry points into the AddressSpace.


 

5     Use Cases

This section introduces the use cases for the OPC UA for Machine Tools specification. For the use cases described in sections 5.2 to 5.9, a maximum sampling rate of 1 Hz is considered to be sufficient.

5.1      Identify Machines of Different Manufacturers

The machines of different manufacturers shall be identifiable in a standardised manner. To realize this, a number of basic and static information like manufacturer name and serial number are offered on the Machine Tools interface. This information can be found on the interface in an instance of the MachineToolIdentificationType.

5.2      Overview if Production is Running

Using information provided by the Machine Tools interface, an overview if the machine tool is in production or not should be possible. Additionally, if the machine tool is in an erroneous state, it needs to be evident over the interface.

If the machine tool is not in production, the reason for this state should also be identifiable.

The information of the machine tool and controller state can be found in the information model in the Monitoring Component (defined by the MonitoringType) of the MachineToolType. Other nodes that provide important information for an overview if the production is running are the override values of NC channels and working units in the ChannelMonitoringType and the WorkingUnitMonitoringType.

Another indication of the machine tool status is the machine stacklight. Its representation in the Machine Tools information model can be found in the StacklightType.

The errors and warnings on the machine tool shall be available on the Machine Tools interface with the OPC UA mechanism described in OPC UA Part 9 – Alarms and Conditions.

5.3      Overview of Parts in a Job

Using the machine tools interface, an overview of the target and actual manufactured parts is possible. Additionally, it is possible to see which parts belong to which internal or customer order. If there is an irregularity in the process which might affect the part quality, the part’s representation on the interface is marked accordingly.

The relevant information can be found in the information model in the part counters of the ProductionPartSetType, the CustomerOrderIdentifier of the ProductionPartType and ProductionJobType and the quality information of the ProductionPartType.

5.4      Overview of Runtimes for a Job

In order to calculate cycle times and prognoses for production, the Machine Tools interface provides the time data of start, end, interruption and abortion of machining processes and programs on the machine tool.

The events can be found in the information model as InterruptionConditionType with its ConditionClassId and ConditionClassName (that specify the reason for the interruption further), ProductionJobTransitionEventType, ProductionProgramTransitionEventType and ProductionPartTransitionEventType.

To receive the events for a specific program, job or controller, the OPC UA client can subscribe to the associated StateMachine.

5.5      Overview of Machine Tool State

With the interface, information on the machine tool state is available, e.g. in the MachineOperationMonitoringType. The states of NC channels and controllers in the machine tool are available as well.

In the information model, the status of the production is shown in state machines of each available production job (ProductionJobType), program (ProductionProgramType) and part (ProductionPartType). The reason for an interruption in a production job can be qualified with the ConditionClassTypes defined in 10.

The control mode of the channel is represented in the ChannelMode of the ChannelMonitoringType.

5.6      Overview of Upcoming Manual Activities

For a machine operator who works on multiple machine tools in his shift, an indication which of the machine tools has the soonest need of a manual intervention is helpful (e.g. tool change, part change, preparation for the next job…).

To achieve this, the Machine Tools interface offers the possibility to give prognoses for different events. These prognoses can of course only be provided if the machine tool can estimate the time of the respective future event.

The available types of prognoses are: MaintenancePrognosisType, ManualActivityPrognosisType, PartUnloadPrognosisType, ProcessChangeoverPrognosisType, ProductionJobEndPrognosisType, PartLoadPrognosisType, ToolLoadPrognosisType, ToolUnloadPrognosisType, ToolChangePrognosisType and UtilityChangePrognosisType.

On the Machine Tools interface, there is a list of available prognoses, which is of PrognosisListType. It contains all known prognoses with their times to happen.

5.7      Overview of Errors and Warnings

The machine tool is expected to offer all current errors and warnings over the Machine Tools interface.

These errors and warnings shall be mapped to OPC UA event types accordingly. For errors, the Machine Tools information model offers the AlertType. For messages with lower urgency, there is the NotificationEventType.

5.8      Providing Data for KPI Calculations

To facilitate the calculation of different KPIs like for example OEE, the Machine Tools interface offers different machine times. These times allow to calculate the durations of different machine modes. To calculate the KPI, additional data not provided by the interface may be necessary.

All of these relevant times are transferred via the event mechanism in OPC UA.

This happens with the ProductionStateMachineType, which is a part of the ProductionJobType, the ProductionProgramType and the ProductionPartType. This means, every Job, Program, and Part has its own state machine with start, end, abortion and interruption states. Each state change sends an appropriate event as a notification. This event can be received by the OPC UA client, and the timestamp can be used to calculate the time durations needed for KPI compilation.

5.9      Providing an Overview of Tool Data

On the machine tool interface, data concerning the tools in the machine tool is available.

In the Machine Tools interface, tools are modelled with the MultiToolType and ToolType and aggregated in a list with the ToolListType.

In the Machine Tools information model, the tool data are constrained to very basic information. Especially all geometric information about the tool is omitted on the interface. This is mainly due to the multitude of different norms for different tools.

On the interface, there are the identifiers of the tools in the machine tool. With these, it can be verified if a machine tool is prepared to execute a certain machining task.

There is also some information about the tool life condition of the tool. The interface will show at which tool life value a warning to change the tool is issued and the tool life limit value at which the tool is intended to be changed.

If there are multiple tools of the same type equipped in the machine tool, the one that will primarily be used in the machining process is marked as planned for operating. Using this information, the tool distribution among different machines can be planned remotely and changed without disturbing the current machine operation.


 

6     Machine Tools Information Model Overview

This section introduces the "OPC UA Information Model for Machine Tools".

This Information Model provides the necessary ObjectTypes to model a machine tool interface in a structure as illustrated in Figure 6. There are ObjectTypes that are used to identify the machine tool (MachineToolIdentificationType), to monitor the machine tool (Monitoring Type), to manage the production (Production Type) on the machine tool, to handle the Equipment of the machine tool (EquipmentType) and to give notification on the status of the machine tool (NotificationType).

Figure 6 – Instance Example for OPC UA Information Model for Machine Tools

The ObjectType hierarchy of this Companion Specification is shown within the Figures 7-12. Objects from external specifications are positioned within greyish-green boxes.


 

Figure 7 shows the inheritance relations of the MachineToolType.

Figure 7 – Inheritance Hierarchy of the MachineToolType in the Machine Tools Interface

 

Figure 8 shows the inheritance hierarchy of all ObjectTypes used in the MachineToolType’s Identification component. This relates to the document structure in 8.3.

Figure 8 – Inheritance Hierarchy of the Identification in the Machine Tools Interface


 

Figure 9 shows the inheritance hierarchy of all types used in the MachineToolType’s Monitoring component. This conforms to the structure of the section Monitoring.

Figure 9 – Inheritance Hierarchy of the Monitoring in the Machine Tools Interface


 

Figure 10 shows the inheritance hierarchy of all types used in the MachineToolType’s Production component. This conforms to the structure of the section Production.

Figure 10 – Inheritance Hierarchy of the Production in the Machine Tools Interface

Figure 11 shows the inheritance hierarchy of all types used in the MachineToolType’s Equipment component. This conforms to the structure of the section Equipment.

Figure 11 – Inheritance Hierarchy of the Equipment in the Machine Tools Interface

 

Figure 12 shows the inheritance hierarchy of all types used in the MachineToolType’s Notification component. This conforms to the structure of the section Notification.

Figure 12 – Inheritance Hierarchy of the Notification in the Machine Tools Interface


 

7     General Recommendations for Implementation

7.1      Localization

If the text part of a value of DataType LocalizedText, like the Manufacturer or the Model of a machine tool, is language neutral, i.e. it is the same in all languages, the locale of the LocalizedText shall be null or an empty string.

For all LocalizedText that have a language, the English version may be provided if possible.

7.2      Extending the Specification

If a type in this specification lacks information for a specific scenario, it is possible to extend the type. This is done in a specific namespace to indicate that it is outside the scope of this specification. To extend a type, a subtype containing the additional information is created. Instances of this subtype can be used interchangeably with instances of its parent type in the overall Machine Tools node structure. As the subtyped object needs to contain all information the parent type requires, all clients using this specification can handle the information of the supertype in the subtype. Clients that don’t know the subtype might not use its additional information though.

7.3      GeneralModelChangeEvent and NodeVersion

This specification provides the possibility to indicate changes in the AddressSpace to a client. Most often this concept is used in list representations, to add or delete Nodes from the list. OPC 10000-3 defines the property NodeVersion and the GeneralModelChangeEventType to indicate such changes. Whenever the address space in this specification is changing, the NodeVersion and the GeneralModelChangeEvent shall be used in the way defined in OPC 10000-3.

As content for the NodeVersion Property, a timestamp of the moment the node structure was changed converted to a string with the format yyyy-MM-ddTHH:mm:ss.sZ (using UTC time for display) shall be used.


 

8     OPC UA ObjectTypes

8.1      MachineToolType

The MachineToolType represents the entire machine tool interface of the information model. It is the entry point to the OPC UA interface of a machine tool. It gives a basic structure to the interface. An instance of this type aggregates all information related to one machine tool.

All instances of MachineToolType have to be referenced from the 3:Machines node defined in OPC 40001-1. At least one MachineToolType instance shall be present to qualify for any profile of OPC UA for Machine Tools.

The MachineToolType is formally defined in Table 9.

Table 9 – MachineToolType Definition

Attribute

Value

BrowseName

MachineToolType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node.

0:HasComponent

Object

Equipment

 

EquipmentType

M

0:HasAddIn

Object

2:Identification

 

MachineToolIdentificationType

M

0:HasComponent

Object

Monitoring

 

MonitoringType

M

0:HasComponent

Object

Notification

 

NotificationType

M

0:HasComponent

Object

Production

 

ProductionType

M

 

Equipment (see 8.5), Identification (see 8.2), Monitoring (see 8.3), Notification (see 8.6) and Production (see 8.4) are instances of the respective types. They are used to structure the information in the MachineToolType topically.

8.2      Identification

8.2.1       MachineToolIdentificationType

The MachineToolIdentificationType of the Machine Tools information model holds static data which shall uniquely identify a machine tool among a pool of the machine tool operating entity. It is a subtype of the MachineIdentificationType defined in OPC 40001-1, so it inherits all InstanceDeclarations specified there.

The MachineToolIdentificationType is formally defined in Table 10.

Table 10 – MachineToolIdentificationType Definition

Attribute

Value

BrowseName

MachineToolIdentificationType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the MachineIdentificationType defined in OPC 40001-1 i.e. inheriting the InstanceDeclarations of that Node.

0:HasComponent

Object

SoftwareIdentification

 

BaseObjectType

O

 

SoftwareIdentification contains a list of instances of the SoftwareIdentificationType (see Table 12). This list contains the machine tool’s software identification information. It allows to add multiple software items, e.g. one for each of PLC, NC and HMI.

SoftwareRevision inherited from the MachineIdentificationType shall contain an overall software patch level of the machine tool. Individual software revision numbers may be given using SoftwareIdentification.

For the DeviceClass inherited from the MachineIdentificationType, the values in Table 11 shall be used. The most appropriate value, based on the main machine tool technology shall be chosen. Detailed definitions can be found at http://www.rotebuch.de.

Additive manufacturing machines are not defined in the source mentioned. They include every additive technology currently available.

Table 11 – DeviceClasses for Machine Tools

Additive manufacturing machine

Forming machine

Nibbling machine

Shearing machine

Additive manufacturing hybrid machine

Gear cutting machine

Other

Slotting machine

Beading machine

Grinding machine

Planer

Straightening machine

Bending machine

Hammer machine

Planing machine

Testing machine

Broaching machine

Hardening machine

Plasma cutting machine

Thermal deburring machine (TEM)

Copy milling machine

Honing machine

Polishing machine

Transfer machine

Curling machine

Lapping machine

Press

Trimming machine

Deburring machine

Laser ablation machine

Profiling machine

Turn-mill machining centre

Drawing machine

Laser cutting machine

Punch laser machine

Turning machine

Drilling / Boring machine

Laser drilling machine

Punching machine

Water jet cutting machine

Electrical discharge machine (EDM)

Laser welding machine

Riveting machine

 

Electro chemical machine (ECM)

Machining centre

Rolling machine

 

Finishing machine

Machining centre (other)

Rotary transfer machine

 

Flanging machine

Measuring machine

Sawing machine

 

Folding machine

Milling machine

Seaming machine

 

Forging machine

Mill-turn machining centre

Shaping machine

 

 

All other properties of the MachineToolIdentificationType are defined in OPC 40001-1 and are intended to be used as indicated there.

Table 12 – MachineToolIdentificationType Additional Subcomponents

Source Path

References

NodeClass

BrowseName

DataType

TypeDefinition

Others

SoftwareIdentification

0:HasComponent

Object

<SoftwareItem>

SoftwareIdentificationType

MP

 

8.2.2       SoftwareIdentificationType

Figure 13 – Example Instance of SoftwareIdentification in a Machine Tools Server

The SoftwareIdentificationType holds information about the specific software in operation in the machine tool. Almost all modern machine tools operate on several software system components, this shall enable presentation of software components (NC Kernel, HMI base system, etc.). Figure 13 shows an example instance of the application of this type within the Identification component of the MachineToolType.

The SoftwareIdentificationType is formally defined in Table 13.

Table 13 – SoftwareIdentificationType Definition

Attribute

Value

BrowseName

SoftwareIdentificationType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node.

0:HasProperty

Variable

2:SoftwareRevision

0:String

0:PropertyType

M, RO

0:HasProperty

Variable

Identifier

0:String

0:PropertyType

M, RO

0:HasProperty

Variable

2:Manufacturer

0:LocalizedText

0:PropertyType

O, RO

 

In most cases, machine tools consist of several software components. SoftwareComponent can be an individual application, or plugin of an application involved in controlling the machine tool.

SoftwareRevision provides a string representation of the version or revision level of the software component, the software/firmware of a hardware component. Examples are: “PLL01 1.10.0.3” V05.01.01.15”, “3.1 R1293”, “70.0.1”.

The Identifier Property provides an identifier to distinguish the software component.

Manufacturer refers to the manufacturer/producer of the software.

8.3      Monitoring

8.3.1       MonitoringType

The MonitoringType is used to structure information given in the MachineToolType. It contains the monitoring information of the machine tool and its subsystems.

The MonitoringType is formally defined in Table 14.

Table 14 – MonitoringType Definition

Attribute

Value

BrowseName

MonitoringType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node.

0:HasComponent

Object

<MonitoredElement>

 

ElementMonitoringType

OP

0:HasComponent

Object

MachineTool

 

MachineOperationMonitoringType

M

0:HasComponent

Object

Stacklight

 

4:BasicStacklightType

O

 

<MonitoredElement> is an optional Placeholder for ElementMonitoringType instances. This allows for any number of such instances as a component of the MonitoringType. For the DisplayName, it is recommended to use the value of the Name Property of the respective ElementMonitoringType instance.

MachineTool provides overall monitoring information of the machine tool.

Stacklight contains the information about a stacklight’s composition and status. It is an object of BasicStacklightType, defined in OPC 10000-200. If the machine tool has a stacklight available, the Stacklight shall be present.

The optional 4:StackLevelType and 4:StackRunningType of the 4:BasicStacklightType shall not be used, only a segmented light shall be shown. Thus, the 4:StacklightMode of each stacklight has to be “Segmented” (0).

As 4:<StackElement>, only elements of 4:StackElementLightType shall be used. For these, the 4:SignalOn, 4:SignalColor and 4:SignalMode shall be used, not the 4:ControlChannelType (see Table 15).

Table 15 – MonitoringType Additional Subcomponents

Source Path

References

NodeClass

BrowseName

DataType

TypeDefinition

Other

Stacklight

0:HasOrderedComponent

Object

0:<OrderedObject>

 

4:StackElementLightType

MP

Stacklight

0:<OrderedObject>

0:HasProperty

Variable

4:SignalOn

0:Boolean

0:PropertyType

M, RO

Stacklight

0:<OrderedObject>

0:HasComponent

Variable

4:SignalColor

4:SignalColor

0:BaseDataVariableType

M, RO

Stacklight

0:<OrderedObject>

0:HasComponent

Variable

4:SignalMode

4:SignalModeLight

0:BaseDataVariableType

M, RO

 

8.3.2       ElementMonitoringType

The ElementMonitoringType is intended to be a supertype for all monitoring information that is specific to a particular element within the machine tool. An element doesn’t have to be a physical component. Examples for such elements are NC channels or spindles. It is an abstract type, meaning it is not instantiated, only the subtypes are.

The ElementMonitoringType is formally defined in Table 16.

Table 16 – ElementMonitoringType Definition

Attribute

Value

BrowseName

ElementMonitoringType

IsAbstract

True

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node.

0:HasSubtype

ObjectType

ChannelMonitoringType

Defined in 8.3.7

0:HasSubtype

ObjectType

WorkingUnitMonitoringType

Defined in 8.3.3

0:HasProperty

Variable

Name

0:String

0:PropertyType

M, RO

 

The Name property refers to a name of the element.

8.3.3       WorkingUnitMonitoringType

The WorkingUnitMonitoringType is a supertype used to group monitoring information of machine tool elements that are a direct and active part of the machining process. It is an abstract type, meaning it is not instantiated, only the subtypes are.

The WorkingUnitMonitoringType is formally defined in Table 17.

Table 17 – WorkingUnitMonitoringType Definition

Attribute

Value

BrowseName

WorkingUnitMonitoringType

IsAbstract

True

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the ElementMonitoringType defined in 8.3.2 i.e. inheriting the InstanceDeclarations of that Node.

0:HasSubtype

ObjectType

SpindleMonitoringType

Defined in 8.3.6

0:HasSubtype

ObjectType

LaserMonitoringType

Defined in 8.3.4

0:HasSubtype

ObjectType

EDMGeneratorMonitoringType

Defined in 8.3.5

 

The WorkingUnitMonitoringType has no other explicitly defined References than HasSubtype References.

8.3.4       LaserMonitoringType

The LaserMonitoringType provides basic monitoring information of a laser device used in the machining process, i.e. a beam source for a laser beam used as a tool.

The LaserMonitoringType is formally defined in Table 18.

Table 18 – LaserMonitoringType Definition

Attribute

Value

BrowseName

LaserMonitoringType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the WorkingUnitMonitoringType defined in 8.3.3 i.e. inheriting the InstanceDeclarations of that Node.

0:HasComponent

Variable

ControllerIsOn

0:Boolean

0:BaseDataVariableType

M, RO

0:HasComponent

Variable

LaserState

LaserState

0:BaseDataVariableType

M, RO

 

ControllerIsOn being True indicates that the controller of the laser device is running. This gives no indication whether laser light is currently emitted.

LaserState indicates the current state of a laser device. It is defined in 12.4.

8.3.5       EDMGeneratorMonitoringType

The EDMGeneratorMonitoringType is a collection of information about the EDM spark generator

The EDMGeneratorMonitoringType is formally defined in Table 19

Table 19 – EDMGeneratorMonitoringType Definition

Attribute

Value

BrowseName

EDMGeneratorMonitoringType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the WorkingUnitMonitoringType defined in 8.3.3 i.e. inheriting the InstanceDeclarations of that Node.

0:HasComponent

Variable

IsOn

0:Boolean

0:BaseDataVariableType

M, RO

0:HasComponent

Variable

EDMGeneratorState

EDMGeneratorState

0:BaseDataVariableType

M, RO

 

IsOn being True indicates that the EDM spark generator has a valid set of technology parameters, meets all safety conditions required and is switched on.

EDMGeneratorState indicates the current state of the EDM spark generator. It is defined in 12.3.

8.3.6       SpindleMonitoringType

The SpindleMonitoringType is a collection of information about the rotary process axis.

Depending on the actual context of the machine tool, this may for example be a tool-holding milling spindle or a workpiece-holding turning spindle.

The SpindleMonitoringType is formally defined in Table 20.

Table 20 – SpindleMonitoringType Definition

Attribute

Value

BrowseName

SpindleMonitoringType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the WorkingUnitMonitoringType defined in 8.3.3 i.e. inheriting the InstanceDeclarations of that Node.

0:HasComponent

Variable

IsRotating

0:Boolean

0:BaseDataVariableType

M, RO

0:HasComponent

Variable

Override

0:Double

0:AnalogUnitRangeType

O, RO

0:HasComponent

Variable

IsUsedAsAxis

0:Boolean

0:BaseDataVariableType

O, RO

 

IsRotating being True indicates if the spindle is rotating and has a valid commanded rotation speed.

Override is representing the current value of the spindle override.

IsUsedAsAxis being True indicates if the monitored element is used as an axis or, if False, as a spindle. If IsUsedAsAxis is True, the values of IsRotating and Override shall not be used by a client.

8.3.7       ChannelMonitoringType

The ChannelMonitoringType provides the monitoring information about one NC channel.

The ChannelMonitoringType is formally defined in Table 21.

Table 21 – ChannelMonitoringType Definition

Attribute

Value

BrowseName

ChannelMonitoringType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the ElementMonitoringType defined in 8.3.2 i.e. inheriting the InstanceDeclarations of that Node.

0:HasSubtype

ObjectType

CombinedChannelMonitoringType

Defined in 8.3.8

0:HasComponent

Variable

ChannelState

ChannelState

0:BaseDataVariableType

M, RO

0:HasComponent

Variable

ChannelMode

ChannelMode

0:BaseDataVariableType

M, RO

0:HasComponent

Variable

FeedOverride

0:Double

0:AnalogUnitRangeType

M, RO

0:HasComponent

Variable

RapidOverride

0:Double

0:AnalogUnitRangeType

O, RO

0:HasComponent

Object

ChannelModifiers

 

ChannelModifierType

O

 

ChannelState is representing the current status of the NC channel and is defined in 12.1.

ChannelMode is representing the current mode the NC channel operates in. It is defined in 12.2.

FeedOverride is representing the current value of the feed override of the NC channel.

RapidOverride is representing the current value of the rapid override of the NC channel.

ChannelModifiers is representing additional program modifiers usually used during special operations of the machine tool, e.g. preparation of production (see 8.3.10 ).

8.3.8       CombinedChannelMonitoringType

The CombinedChannelMonitoringType is a subtype of the ChannelMonitoringType and inherits all its InstanceDeclarations. Using this type instead of a ChannelMonitoringType provides an aggregated representation of the channels in a machine tool. The rules for aggregation are given in Table 22. Sometimes it is not necessary to provide one representation per individual channel, e.g. if one channel is of primary interest, the status of the remaining channels is irrelevant for the machine tool status. It could be used together with the separate channels. Typical applications are multi-spindle machines in which a large number of channels are used for interlinked work steps.

Table 22 – Rules for Aggregation of the CombinedChannelMonitoringType

Component of the CombinedChannelMonitoringType

Rule for Aggregation

ChannelState

Mode of the channel not in “active”, otherwise “active”

- if all channels active --> active

- if >0 channel reset --> reset

- else interrupted

ChannelMode

Mode of the channel not in “automatic”, otherwise “automatic”

If one or more channel of the combined channels is not in "automatic" the machine tool is not producing (except if the channel is not currently in use). If for example the operator is in JogManual and moving one axis, the whole machine tool is not producing in automatic and the combined channel can be viewed as in JogManual

FeedOverride

selection from HMI mirrored

On most multi spindle machines there is one HMI which controls the whole machine tool, so most of the input is applied to all combined channels

RapidOverride

selection from HMI mirrored

On most multi spindle machines there is one HMI which controls the whole machine tool, so most of the input is applied to all combined channels

ChannelModifiers

If an element of ChannelModifiers is True in any channel, it has to be True in the combined channel.

 

The CombinedChannelMonitoringType is formally defined in Table 23.

Table 23 – CombinedChannelMonitoringType Definition

Attribute

Value

BrowseName

CombinedChannelMonitoringType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the ChannelMonitoringType defined in 8.3.7 i.e. inheriting the InstanceDeclarations of that Node.

 

The CombinedChannelMonitoringType contains no further References than the ones inherited.

8.3.9       MachineOperationMonitoringType

The MachineOperationMonitoringType provides overall monitoring information of the machine tool.

The MachineOperationMonitoringType is formally defined in Table 24.

Table 24 – MachineOperationMonitoringType Definition

Attribute

Value

BrowseName

MachineOperationMonitoringType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node.

0:HasComponent

Variable

FeedOverride

0:Double

0:AnalogUnitRangeType

O, RO

0:HasComponent

Variable

PowerOnDuration

0:UInt32

0:BaseDataVariableType

O, RO

0:HasComponent

Variable

OperationMode

MachineOperationMode

0:BaseDataVariableType

M, RO

0:HasComponent

Variable

IsWarmUp

0:Boolean

0:BaseDataVariableType

O, RO

 

FeedOverride is the combined actual feed override value that is effective for the manufacturing program of the machine tool.

PowerOnDuration is the duration the machine tool has been powered, meaning all systems have line voltage. It is counted in full hours. This value only increases during the lifetime of the machine tool and is not reset when the machine tool is power cycled.

OperationMode contains a MachineOperationMode value as defined in 12.5. The values of the MachineOperationMode enum are derived from the MO modes of machinery functional safety standards. For a machine tool adhering to such a standard, the OperationMode shall show the respective mode. For a machine tool not adhering to such a standard, the OperationMode shall be filled with the appropriate mode available from the MachineOperationMode Enum. The OperationMode is only a representation of the machine tool mode, it shall not be used in a safety relevant manner.

IsWarmUp being True indicates if the machine tool is performing a warmup task. A warmup is not used for production, it is the mode used to reach a stable operating point for the machine tool. An example is reaching the optimal operating temperature. This might be indicated by a hardware switch on the machine tool, a special control command, a special production program (referenced by program name) or otherwise.

8.3.10     ChannelModifierType

The ChannelModifierType allows to show which modifiers are used while the machine tool is performing pre-production tests and similar tasks.

The ChannelModifierType is formally defined in Table 25.

Table 25 – ChannelModifierType Definition

Attribute

Value

BrowseName

ChannelModifierType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node.

0:HasComponent

Variable

BlockSkip

0:Boolean

0:BaseDataVariableType

O, RO

0:HasComponent

Variable

DryRun

0:Boolean

0:BaseDataVariableType

M, RO

0:HasComponent

Variable

OptionalStop

0:Boolean

0:BaseDataVariableType

M, RO

0:HasComponent

Variable

TestMode

0:Boolean

0:BaseDataVariableType

O, RO

0:HasComponent

Variable

SingleStep

0:Boolean

0:BaseDataVariableType

M, RO

 

BlockSkip being True indicates that specially marked NC program blocks are skipped.

DryRun being True indicates that a test run using with a dedicated axis feed is being performed.

OptionalStop being True indicates that the execution will stop at special machine commands.

TestMode being True indicates a test mode which enables execution of a program without physical axis movement. The machining process may be simulated during program execution.

SingleStep being True indicates if the NC channel operates in single block/single step mode.

8.4      Production

8.4.1       ProductionType

The ProductionType is used to structure information given in the MachineToolType. It groups the information about the production plan and the production statistics.

The ProductionType is formally defined in Table 26.

Table 26 – ProductionType Definition

Attribute

Value

BrowseName

ProductionType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node.

0:HasComponent

Object

ProductionPlan

 

ProductionJobListType

O

0:HasComponent

Object

ActiveProgram

 

ProductionActiveProgramType

M

0:HasComponent

Object

Statistics

 

ProductionStatisticsType

O

 

ProductionPlan is a list of all job elements currently running and planned for execution.

If there is no job on the machine tool, there may be no ProductionJob object in the list.

In case the ProductionPlan is used as a dynamic list (i.e. ProductionJobType nodes are being added and deleted), the precondition for deleting any node is that all values of variables represent the final state of the job and are sent to all clients in active subscriptions.

ActiveProgram contains the program that is currently running on the machine tool. If the machine tool control discriminates between main and subprograms, this program shall be the main program. It is used in parallel to the ProductionPlan, so it allows for an access of the running program without browsing the jobs in the ProductionPlan.

Statistics is the object that contains statistics information related to production.

8.4.2       ProductionJobListType

The ProductionJobListType is a type used for structuring objects of ProductionJobType in an ordered list structure.

The ProductionJobListType is formally defined in Table 27.

Table 27 – ProductionJobListType Definition

Attribute

Value

BrowseName

ProductionJobListType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the OrderedListType defined in OPC 10001-13 i.e. inheriting the InstanceDeclarations of that Node.

0:HasOrderedComponent

Object

0:<OrderedObject>

 

ProductionJobType

OP

 

0:<OrderedObject> is a placeholder for any number of ProductionJobType instances. To indicate the order of jobs on the machine tool, the NumberInList parameter of the ProductionJobType is used. This index shall be 0 for the first list element and increase by one for each subsequent list element. If jobs are deleted from the list or inserted into the list, the NumberInList has to be adjusted for all following ProductionJobType instances in the list, such that the NumberInList elements always form a sequential series of numbers. For the DisplayName of the <OrderedObject>, it is recommended to use the value of the Identifier Property of the respective ProductionJobType instance.

The NodeVersion and the GeneralModelChangeEventType inherited from the OrderedListType are intended to be used in the way defined in OPC 10000-3 and 7.3.

8.4.3       ProductionJobType

The ProductionJobType provides aggregated production data for running a sequence to produce several parts after one preparation mounting.

Examples for such a mounting are putting four raw parts on a pallet for a machining centre, setting up the fitting diameter bars in a turning centre bar feeder or loading a metal sheet from which hundreds of parts can be cut or punched. This sequence shall represent several parts which will usually (but not always) be several identical products. A job may be executed several times.

The ProductionJobType is formally defined in Table 28.

Table 28 – ProductionJobType Definition

Attribute

Value

BrowseName

ProductionJobType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node

0:HasProperty

Variable

CustomerOrderIdentifier

0:String

0:PropertyType

O, RO

0:HasProperty

Variable

Identifier

0:String

0:PropertyType

M, RO

0:HasProperty

Variable

OrderIdentifier

0:String

0:PropertyType

O, RO

0:HasComponent

Object

PartSets

 

0:BaseObjectType

O

0:HasComponent

Object

ProductionPrograms

 

0:OrderedListType

M

0:HasComponent

Variable

RunsCompleted

0:UInt32

0:BaseDataVariableType

M, RO

0:HasComponent

Variable

RunsPlanned

0:UInt32

0:BaseDataVariableType

M, RO

0:HasComponent

Object

State

 

ProductionJobStateMachineType

M

0:HasInterface

ObjectType

0:IOrderedObjectType

 

 

 

 

 

 

 

 

 

Applied from 0:IOrderedObjectType

0:HasProperty

Variable

0:NumberInList

0:UInt16

0:PropertyType

M, RO

 

The components of the ProductionJobType have additional references which are defined in Table 29.

Table 29 – ProductionJobType Additional Subcomponents

Source Path

References

NodeClass

BrowseName

DataType

TypeDefinition

Others

PartSets

0:HasComponent

Object

<PartSet>

ProductionPartSetType

MP

ProductionPrograms

0:HasOrderedComponent

Object

0:<OrderedObject>

ProductionProgramType

MP

RunsPlanned

0:HasProperty

Variable

IsValid

Boolean

PropertyType

M, RO

 

The Identifier is the identifier of the job. This Identifier is used to reference the job in other places of the AddressSpace, e.g. in the ProductionPartTransitionEventType. For this reason, the Identifier shall be unique.

The CustomerOrderIdentifier is used to reference the customer order this job belongs to. This information often originates from an external system handling production organisation (e.g. MES).

The OrderIdentifier is used to reference a company internal order the job belongs to. This information often originates from an external system handling production organisation (e.g. MES).

PartSets contains a list of ProductionPartSetType nodes related to the job. It is a list of the part sets, which contain the parts produced in the current run of the job. For the DisplayName of the <PartSet>, it is recommended to use the value of the Name Property of the respective ProductionPartSetType instance.

ProductionPrograms contains a list of ProductionProgramType nodes representing the programs used in the job. This list is made out of at least one instance of ProductionProgramType. The ordering of the programs is displayed using the HasOrderedComponent Reference and the NumberInList component of the ProductionProgramType instance applied from the IOrderedObjectType. The underlying ordering is the call sequence of the programs. The program called first shall have the number 0 and appear first along the OrderedComponents. For the DisplayName of the <OrderedObject>, it is recommended to use the value of the Name Property of the respective ProductionProgramType instance.

The ProductionPrograms may include one single ProductionProgramType instance. If it contains more than one ProductionProgramType instance, the call hierarchy of the programs is not shown in this list. Neither is the relation of programs and channels modelled in the ProductionProgramType. Which programs to include in the list can be chosen by the integrator of the information model (e.g. main program only, subprograms included, …). The list shall include programs relevant to the job and manufacturing of the job, macros and cycles for general purpose tasks are usually not included.

RunsCompleted is a counter that increases after each completed run of the job. This means, the run was not aborted and finished regularly. This counter does not give any indication about the part quality.

RunsPlanned indicates how many times a job should be executed. RunsPlanned has a Property called IsValid, which indicates if the planned number of job runs is known to the machine tool (True) or not (False). The number of planned job runs not being known occurs in continuous production, that is if the machine tool is started with the respective job and job runs are repeated endlessly. The production process only ends when the machine tool is stopped by an external measure (operator or system).

State is an instance representation of the ProductionJobStateMachineType. It indicates the current state the job is in and the transition used to get into this state.

NumberInList is used to enumerate ProductionJobType instances used as list elements. This index shall be 0 for the first list element and increase by one for each subsequent list element. If nodes are deleted from the list or inserted into the list, the NumberInList has to be adjusted for all following nodes in the list, such that the NumberInList elements always form a sequential series of numbers.

8.4.4       ProductionProgramType

The ProductionProgramType is the representation of a program. A program is a list of operations that the controller performs in sequence. It's usually a machine-readable file which is needed for the controller to fulfil the job.

The ProductionProgramType is formally defined in Table 30.

Table 30 – ProductionProgramType Definition

Attribute

Value

BrowseName

ProductionProgramType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node

0:HasSubtype

ObjectType

ProductionActiveProgramType

Defined in 8.4.5

0:HasProperty

Variable

Name

0:String

0:PropertyType

M, RO

0:HasComponent

Object

State

 

ProductionProgramStateMachineType

O

0:HasInterface

ObjectType

0:IOrderedObjectType

 

 

 

 

 

 

 

 

 

Applied from 0:IOrderedObjectType

0:HasProperty

Variable

0:NumberInList

0:UInt16

0:PropertyType

M, RO

 

The Name is used to distinguish and identify programs on a machine tool.

State is an instance representation of the ProductionProgramStateMachineType. It indicates the current state the part is in and the transition used to get into this state.

NumberInList is used to enumerate ProductionProgramType instances used as list elements. This index shall be 0 for the first list element and increase by one for each subsequent list element. If nodes are deleted from the list or inserted into the list, the NumberInList has to be adjusted for all following nodes in the list, such that the NumberInList elements always form a sequential series of numbers.

8.4.5       ProductionActiveProgramType

The ProductionActiveProgramType is used to represent programs that are currently running within the machine tool.

The ProductionActiveProgramType is formally defined in Table 31.

Table 31 – ProductionActiveProgramType Definition

Attribute

Value

BrowseName

ProductionActiveProgramType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the ProductionProgramType defined in 8.4.4 i.e. inheriting the InstanceDeclarations of that Node.

0:HasComponent

Variable

JobNodeId

0:NodeId

0:BaseDataVariableType

O, RO

0:HasComponent

Variable

JobIdentifier

0:String

0:BaseDataVariableType

O, RO

0:HasComponent

Object

State

 

ProductionProgramStateMachineType

M

 

JobNodeId contains the NodeId of the ProductionJobType instance this program is used in.

JobIdentifier holds the same content as the Identifier Property of the ProductionJobType instance this program is used in.

State is inherited from the ProductionProgramType and overridden to be mandatory.

8.4.6       ProductionPartSetType

The ProductionPartSetType is used to group parts within a production job. It also contains information about the parts in the group.

It is formally defined in Table 32. Its additional subcomponents are defined in Table 33.

Table 32 – ProductionPartSetType Definition

Attribute

Value

BrowseName

ProductionPartSetType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node

0:HasProperty

Variable

Name

0:String

0:PropertyType

O, RO

0:HasComponent

Variable

PartsPlannedPerRun

0:UInt32

0:BaseDataVariableType

M, RO

0:HasComponent

Variable

PartsCompletedPerRun

0:UInt32

0:BaseDataVariableType

M, RO

0:HasComponent

Object

PartsPerRun

 

0:BaseObjectType

O

0:HasProperty

Variable

ContainsMixedParts

0:Boolean

0:PropertyType

M, RO

 

Table 33 – ProductionPartSetType Additional Subcomponents

Source Path

References

NodeClass

BrowseName

DataType

TypeDefinition

Others

PartsPerRun

0:HasComponent

Object

<Part>

ProductionPartType

MP

 

Name is used to specify the type of parts in a group.

PartsPlannedPerRun indicates how many of the parts in this group are intended to be produced in one run of a job.

PartsCompletedPerRun indicates how many parts of this group have been completed in the current run of the job. This counter does not give any indication about the part quality.

PartsPerRun contains a list of the parts in the current run of the job. This list is made out of at least one <Part> instance of ProductionPartType. In each new run of the job, all variables in the part nodes are reset to their initial values. For the DisplayName of the <Part>, it is recommended to use the value of the Name Property of the respective ProductionPartType instance.

ContainsMixedParts indicates if the parts in a ProductionPartSetType may be different from each other (True) or if they are parts of the same type (False).

8.4.7       ProductionPartType

The ProductionPartType represents a part. A part is the workpiece of the machine tool which is treated in the purpose of the machine tool.

This may be for the purpose of machining, measuring or others, depending on the type of machine tool.

The ProductionPartType is formally defined in Table 34.

Table 34 – ProductionPartType Definition

Attribute

Value

BrowseName

ProductionPartType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node

0:HasProperty

Variable

CustomerOrderIdentifier

0:String

0:PropertyType

O, RO

0:HasProperty

Variable

Name

0:String

0:PropertyType

M, RO

0:HasProperty

Variable

Identifier

0:String

0:PropertyType

O, RO

0:HasComponent

Variable

PartQuality

PartQuality

0:BaseDataVariableType

M, RO

0:HasComponent

Variable

ProcessIrregularity

ProcessIrregularity

0:BaseDataVariableType

M, RO

0:HasComponent

Object

State

 

ProductionPartStateMachineType

O

 

The Name is used to name a part in production in a machine tool. This name can be specific to the part (e.g. “MBL30/PartNo32001”) or to the type of part (e.g. “M8x10 Bolt Type 15”).

The CustomerOrderIdentifier is used to reference the customer order this job belongs to. This information often originates from an external system handling production organisation (e.g. MES).

The Identifier is used to distinguish and identify an individual part in production in a machine tool. It shall be unique.

PartQuality indicates the part quality. The PartQuality DataType is defined in 12.6.

ProcessIrregularity is used to tell if a process irregularity has been detected. A process irregularity might for example be the breakage of a tool, or exceeding a temperature limit on coolant. The ProcessIrregularity DataType is defined in 12.7.

State is an instance representation of the ProductionPartStateMachineType. It indicates the current state in manufacturing the part is in and the transition used to get into this state.

8.4.8       ProductionStateMachineType

The ProductionStateMachineType shows the states an element in production can be in and the possible transitions between those states. The states and transitions are depicted in Figure 14. Their representation in the OPC UA address space is given in Table 35. The name of each transition consists of the names of the states it connects: [FromState]To[ToState]. Their References are specified in Table 38.

Figure 14 – The States and Transitions of the ProductionStateMachineType

The ProductionStateMachineType is formally defined in Table 35.

Table 35 – ProductionStateMachineType Definition

Attribute

Value

BrowseName

ProductionStateMachineType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the FiniteStateMachineType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node.

0:HasComponent

Object

Aborted

 

0:StateType

No ModellingRule

0:HasComponent

Object

AbortedToInitializing

 

0:TransitionType

No ModellingRule

0:HasComponent

Variable

0:CurrentState

0:LocalizedText

0:FiniteStateVariableType

M, RO

0:HasComponent

Object

Ended

 

0:StateType

No ModellingRule

0:HasComponent

Object

EndedToInitializing

 

0:TransitionType

No ModellingRule

0:HasComponent

Object

Initializing

 

0:InitialStateType

No ModellingRule

0:HasComponent

Object

InitializingToAborted

 

0:TransitionType

No ModellingRule

0:HasComponent

Object

InitializingToRunning

 

0:TransitionType

No ModellingRule

0:HasComponent

Object

Interrupted

 

0:StateType

No ModellingRule

0:HasComponent

Object

InterruptedToAborted

 

0:TransitionType

No ModellingRule

0:HasComponent

Object

InterruptedToRunning

 

0:TransitionType

No ModellingRule

0:HasComponent

Variable

0:LastTransition

0:LocalizedText

0:FiniteTransitionVariableType

O, RO

0:HasComponent

Object

Running

 

0:StateType

No ModellingRule

0:HasComponent

Object

RunningToAborted

 

0:TransitionType

No ModellingRule

0:HasComponent

Object

RunningToEnded

 

0:TransitionType

No ModellingRule

0:HasComponent

Object

RunningToInterrupted

 

0:TransitionType

No ModellingRule

0:HasComponent

Object

RunningToRunning

 

0:TransitionType

No ModellingRule

0: Has Subtype

Object Type

ProductionJobStateMachineType

Defined in 8.4.9

0: Has Subtype

Object Type

ProductionPartStateMachineType

Defined in 8.4.10

0: Has Subtype

Object Type

ProductionProgramStateMachineType

Defined in 8.4.11

 

The states shall have the numbers indicated in Table 37; the transitions shall have the numbers indicated in Table 37. The Number property of CurrentState and LastTransition shall use those same numbers for the respective state/transition.

The components CurrentState and LastTransition of the ProductionStateMachineType have their optional property Number changed to be mandatory, as defined in Table 36.

Table 36 – ProductionStateMachineType Additional Subcomponents

Source Path

References

NodeClass

BrowseName

DataType

TypeDefinition

Others

0:CurrentState

0:HasProperty

Variable

0:Number

0:UInt32

0:PropertyType

M, RO

0:LastTransition

0:HasProperty

Variable

0:Number

0:UInt32

0:PropertyType

M, RO

 

The state Aborted indicates that the operation of or on an element in production has been irreversibly stopped before finishing.

Ended is reached when the operation of or on an element in production has finished.

Initializing is the state in which the element in production is being prepared. During this state, the machine tool doesn’t have to be ready for production, although it has to be as soon as the transition InitializingToRunning is used. The production is not yet started.

Interrupted indicates that the execution of or on the element in production has been reversibly halted. This is usually due to an error or an intervention by the operating personnel. It is possible to restart operation of or on the element in production after it was in the interrupted state.

Running indicates that the operation of or on an element in production has been started or re-started and is currently running.

Table 37 – ProductionStateMachineType Attribute values for child Nodes

Source Path

Value Attribute

Description Attribute

State Numbers

Initializing

0:StateNumber

0

 

Running

0:StateNumber

1

 

Ended

0:StateNumber

2

 

Interrupted

0:StateNumber

3

 

Aborted

0:StateNumber

4

 

Transition Numbers

InitializingToRunning

0:TransitionNumber

0

 

RunningToEnded

0:TransitionNumber

1

 

EndedToInitializing

0:TransitionNumber

2

 

RunningToRunning

0:TransitionNumber

3

 

RunningToInterrupted

0:TransitionNumber

4

 

InterruptedToRunning

0:TransitionNumber

5

 

RunningToAborted

0:TransitionNumber

6

 

InterruptedToAborted

0:TransitionNumber

7

 

AbortedToInitializing

0:TransitionNumber

8

 

InitializingToAborted

0:TransitionNumber

9

 

 

Fields may be empty which means this Attribute is not defined.

 

InitializingToRunning is triggered when the operation of or on an element in production starts.

RunningToEnded is triggered when the operation of or on an element in production finishes.

EndedToInitializing is triggered when re-initialization of the operation of or on an element in production starts.

RunningToRunning is triggered when another consecutive run of the operation of or on an element in production in direct succession starts.

RunningToInterrupted is triggered when the operation of or on an element in production is interrupted.

InterruptedToRunning is triggered when an interruption ends and the operation of or on an element in production continues running.

RunningToAborted is triggered when the operation of or on an element in production is aborted while in the Running state.

InterruptedToAborted is triggered when the operation of or on an element in production is aborted while in the Interrupted state.

AbortedToInitializing is triggered if the operation of or on an element in production is being re-initialized after an abort.

InitializingToAborted is triggered when the operation of or on an element in production is aborted while in the Initializing state.

Table 38 – ProductionStateMachineType Additional References

Source Path

ReferenceType

Is Forward

Target Path

AbortedToInitializing

0:FromState

True

Aborted

 

0:ToState

True

Initializing

EndedToInitializing

0:FromState

True

Ended

 

0:ToState

True

Initializing

InitializingToAborted

0:FromState

True

Initializing

 

0:ToState

True

Aborted

InitializingToRunning

0:FromState

True

Initializing

 

0:ToState

True

Running

InterruptedToAborted

0:FromState

True

Interrupted

 

0:ToState

True

Aborted

InterruptedToRunning

0:FromState

True

Interrupted

 

0:ToState

True

Running

RunningToAborted

0:FromState

True

Running

 

0:ToState

True

Aborted

RunningToEnded

0:FromState

True

Running

 

0:ToState

True

Ended

RunningToInterrupted

0:FromState

True

Running

 

0:ToState

True

Interrupted

RunningToRunning

0:FromState

True

Running

 

0:ToState

True

Running

 


 

8.4.9       ProductionJobStateMachineType

The ProductionJobStateMachineType shows the states a production job can be in and the possible transitions between those states.

The ProductionJobStateMachineType is formally defined in Table 39.

Table 39 – ProductionJobStateMachineType Definition

Attribute

Value

BrowseName

ProductionJobStateMachineType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the ProductionStateMachineType defined in 8.4.8 i.e. inheriting the InstanceDeclarations of that Node.

0:GeneratesEvent

ObjectType

InterruptionConditionType

 

 

 

0:HasComponent

Object

AbortedToInitializing

 

0:TransitionType

No ModellingRule

0:HasComponent

Object

EndedToInitializing

 

0:TransitionType

No ModellingRule

0:HasComponent

Object

InitializingToAborted

 

0:TransitionType

No ModellingRule

0:HasComponent

Object

InitializingToRunning

 

0:TransitionType

No ModellingRule

0:HasComponent

Object

InterruptedToAborted

 

0:TransitionType

No ModellingRule

0:HasComponent

Object

InterruptedToRunning

 

0:TransitionType

No ModellingRule

0:HasComponent

Object

RunningToAborted

 

0:TransitionType

No ModellingRule

0:HasComponent

Object

RunningToEnded

 

0:TransitionType

No ModellingRule

0:HasComponent

Object

RunningToInterrupted

 

0:TransitionType

No ModellingRule

0:HasComponent

Object

RunningToRunning

 

0:TransitionType

No ModellingRule

 

When a new interruption occurs in the production job, an event of InterruptionConditionType can be sent to clarify the reason for the interruption. This is an option in addition to the Interrupted state of the ProductionStateMachineType. It is possible that other interruptions occur while the state machine is in the Interrupted state, e.g. the first interruption being due to a missing part and while the part is still missing, a utility change becomes necessary. In such a case, Events of InterruptionConditionType may be sent for each subsequent interruption. The transition InterruptedToRunning may only be used if no interruption is active. If the interrupted job is aborted (via InterruptedToAborted), the interruption may persist. If a job is then re-initialized via AbortedToInitializing, there are multiple possible cases. In one case the interruption is solved before the job enters the Initializing state. In this case, the same job can transition to Initializing. Another option, when the ProductionPlan is used statically, the job node can be overwritten with the new job being in the Initializing state. Depending on the production context, the interruption of the old job might persist. When the ProductionPlan is used dynamically, a new job node can be created. Whether the interruption can persist is again depending on the production context.

The ProductionJobStateMachineType allows to send Events of ProductionJobTransitionEventType with every transition, as indicated in Table 40. This makes it possible to send all relevant information of the ProductionJobType the state machine instance belongs to with the TransitionEvent.

The state Aborted indicates that the job has been irreversibly stopped before finishing. If the job enters this state, the state machines of any ProductionProgramType and ProductionPartType instances associated with it shall not remain in the state Running.

Ended is reached when the job has finished all its runs, so the value of RunsCompleted is the same as the one for RunsPlanned.

Initializing is the state in which the job is being prepared. That implies the job being scheduled for production in the near future. In this state, actions like e.g. loading and configuring programs, inserting tools and utilities and mounting workpieces may be conducted.

InitializingToRunning is triggered when the job starts. This can only be triggered if all preconditions to start the job are met. A job is usually started by starting a related control routine. This does not result in changes to the components and properties (other than State) of the ProductionJobType instance being started.

RunningToEnded is triggered when the last run of a job finishes. The value of RunsCompleted in the affected ProductionJobType instance is increased by one (and equal to the value of RunsPlanned) due to this transition. In the ProductionJobTransitionEventType, this increased value is sent. This transition also implies that all parts and programs related to the job will no longer change, so e.g. the quality information for each part is finally set.

EndedToInitializing is triggered when initialization of a new job starts. This transition is only used if the nodes in the ProductionPlan are never added or deleted, but remain static in the address space. In this case, all values of the ProductionJobType instance the state machine belongs to are changed to represent a different job. The values of this new job are sent with the ProductionJobTransitionEventType.

RunningToRunning is triggered when a new run of the job starts. The RunsCompleted of the affected ProductionJobType instance increases by one. The ProductionJobTransitionEventType shall send this increased value.

RunningToInterrupted is triggered when the job is interrupted. The point in time the interruption starts shall be when the machine tool gets the command to interrupt the job process. To indicate the reason for the interruption, an InterruptionConditionEventType with the appropriate ConditionClass may be sent. The components and properties (other than State) of the affected ProductionJobType instance stay unchanged.

InterruptedToRunning is triggered when an interruption ends and production continues running. This transition requires that no interruption is active, regardless of what interruption initially led to the RunningToInterrupted transition. The components and properties (other than State) of the affected ProductionJobType instance stay unchanged.

InterruptedToAborted is triggered when the job is aborted while in the Interrupted state. This transition does not require the reason for the interruption to be solved. The components and properties (other than State) of the affected ProductionJobType instance stay unchanged.

AbortedToInitializing is triggered if production is being re-initialized after an abort. This transition is only used if the nodes in the ProductionPlan are never added or deleted, but remain static in the address space. In this case, all values of the ProductionJobType instance the state machine belongs to are changed to represent a different job. The values of this new job are sent with the ProductionJobTransitionEventType.

Table 40 – ProductionJobStateMachineType Additional References

Source Path

ReferenceType

Is Forward

Target Path

AbortedToInitializing

0:FromState

True

ProductionStateMachineType

Aborted

 

0:ToState

True

ProductionStateMachineType

Initializing

 

0:HasEffect

True

ProductionJobTransitionEventType

EndedToInitializing

0:FromState

True

ProductionStateMachineType

Ended

 

0:ToState

True

ProductionStateMachineType

Initializing

 

0:HasEffect

True

ProductionJobTransitionEventType

InitializingToAborted

0:FromState

True

ProductionStateMachineType

Initializing

 

0:ToState

True

ProductionStateMachineType

Aborted

 

0:HasEffect

True

ProductionJobTransitionEventType

InitializingToRunning

0:FromState

True

ProductionStateMachineType

Initializing

 

0:ToState

True

ProductionStateMachineType

Running

 

0:HasEffect

True

ProductionJobTransitionEventType

InterruptedToAborted

0:FromState

True

ProductionStateMachineType

Interrupted

 

0:ToState

True

ProductionStateMachineType

Aborted

 

0:HasEffect

True

ProductionJobTransitionEventType

InterruptedToRunning

0:FromState

True

ProductionStateMachineType

Interrupted

 

0:ToState

True

ProductionStateMachineType

Running

 

0:HasEffect

True

ProductionJobTransitionEventType

RunningToAborted

0:FromState

True

ProductionStateMachineType

Running

 

0:ToState

True

ProductionStateMachineType

Aborted

 

0:HasEffect

True

ProductionJobTransitionEventType

RunningToEnded

0:FromState

True

ProductionStateMachineType

Running

 

0:ToState

True

ProductionStateMachineType

Ended

 

0:HasEffect

True

ProductionJobTransitionEventType

RunningToInterrupted

0:FromState

True

ProductionStateMachineType

Running

 

0:ToState

True

ProductionStateMachineType

Interrupted

 

0:HasEffect

True

ProductionJobTransitionEventType

RunningToRunning

0:FromState

True

ProductionStateMachineType

Running

 

0:ToState

True

ProductionStateMachineType

Running

 

0:HasEffect

True

ProductionJobTransitionEventType

 

8.4.10     ProductionProgramStateMachineType

The ProductionProgramStateMachineType shows the states a program can be in and the possible transitions between those states. Their representation in the OPC UA address space is given in Table 42. The name of each transition consists of the names of the states it connects: [FromState]To[ToState].

The ProductionProgramStateMachineType is formally defined in. Table 41.

Table 41 – ProductionProgramStateMachineType Definition

Attribute

Value

BrowseName

ProductionProgramStateMachineType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the ProductionStateMachineType defined in 8.4.8 i.e. inheriting the InstanceDeclarations of that Node.

0:HasComponent

Object

AbortedToInitializing

 

0:TransitionType

No ModellingRule

0:HasComponent

Object

EndedToInitializing

 

0:TransitionType

No ModellingRule

0:HasComponent

Object

InitializingToAborted

 

0:TransitionType

No ModellingRule

0:HasComponent

Object

InitializingToRunning

 

0:TransitionType

No ModellingRule

0:HasComponent

Object

InterruptedToAborted

 

0:TransitionType

No ModellingRule

0:HasComponent

Object

InterruptedToRunning

 

0:TransitionType

No ModellingRule

0:HasComponent

Object

RunningToAborted

 

0:TransitionType

No ModellingRule

0:HasComponent

Object

RunningToEnded

 

0:TransitionType

No ModellingRule

0:HasComponent

Object

RunningToInterrupted

 

0:TransitionType

No ModellingRule

0:HasComponent

Object

RunningToRunning

 

0:TransitionType

No ModellingRule

 

The ProductionProgramStateMachineType allows to send Events of ProductionProgramTransitionEventType with every transition, as indicated in Table 42. This makes it possible to send all relevant information of the ProductionProgramType the state machine instance belongs to with the TransitionEvent.

Initializing is the state in which the program is not yet started.

Interrupted indicates that the execution of the program has been paused and can be continued. This might be due to waiting for the execution of a subprogram or until a certain condition is met, e.g. the doors of the machine tool are closed.

EndedToInitializing is only used if the nodes in the ProductionPlan are never added or deleted, but remain static in the address space. The Transition is triggered when a new program is loaded. In this case, all values of the ProductionProgramType instance the state machine belongs to are changed to represent a different program. The values of this new job are sent with the ProductionProgramTransitionEventType.

Table 42 – ProductionProgramStateMachineType Additional References

Source Path

ReferenceType

Is Forward

Target Path

AbortedToInitializing

0:FromState

True

ProductionStateMachineType

Aborted

 

0:ToState

True

ProductionStateMachineType

Initializing

 

0:HasEffect

True

ProductionProgramTransitionEventType

EndedToInitializing

0:FromState

True

ProductionStateMachineType

Ended

 

0:ToState

True

ProductionStateMachineType

Initializing

 

0:HasEffect

True

ProductionProgramTransitionEventType

InitializingToAborted

0:FromState

True

ProductionStateMachineType

Initializing

 

0:ToState

True

ProductionStateMachineType

Aborted

 

0:HasEffect

True

ProductionProgramTransitionEventType

InitializingToRunning

0:FromState

True

ProductionStateMachineType

Initializing

 

0:ToState

True

ProductionStateMachineType

Running

 

0:HasEffect

True

ProductionProgramTransitionEventType

InterruptedToAborted

0:FromState

True

ProductionStateMachineType

Interrupted

 

0:ToState

True

ProductionStateMachineType

Aborted

 

0:HasEffect

True

ProductionProgramTransitionEventType

InterruptedToRunning

0:FromState

True

ProductionStateMachineType

Interrupted

 

0:ToState

True

ProductionStateMachineType

Running

 

0:HasEffect

True

ProductionProgramTransitionEventType

RunningToAborted

0:FromState

True

ProductionStateMachineType

Running

 

0:ToState

True

ProductionStateMachineType

Aborted

 

0:HasEffect

True

ProductionProgramTransitionEventType

RunningToEnded

0:FromState

True

ProductionStateMachineType

Running

 

0:ToState

True

ProductionStateMachineType

Ended

 

0:HasEffect

True

ProductionProgramTransitionEventType

RunningToInterrupted

0:FromState

True

ProductionStateMachineType

Running

 

0:ToState

True

ProductionStateMachineType

Interrupted

 

0:HasEffect

True

ProductionProgramTransitionEventType

RunningToRunning

0:FromState

True

ProductionStateMachineType

Running

 

0:ToState

True

ProductionStateMachineType

Running

 

0:HasEffect

True

ProductionProgramTransitionEventType

 

8.4.11     ProductionPartStateMachineType

The ProductionPartStateMachineType shows the states a part can be in and the possible transitions between those states. Their representation in the OPC UA address space is given in Table 44. The name of each transition consists of the names of the states it connects: [FromState]To[ToState].

The ProductionPartStateMachineType is formally defined in Table 43.

Table 43 – ProductionPartStateMachineType Definition

Attribute

Value

BrowseName

ProductionPartStateMachineType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the ProductionStateMachineType defined in 8.4.8 i.e. inheriting the InstanceDeclarations of that Node.

0:HasComponent

Object

AbortedToInitializing

 

0:TransitionType

No ModellingRule

0:HasComponent

Object

EndedToInitializing

 

0:TransitionType

No ModellingRule

0:HasComponent

Object

InitializingToAborted

 

0:TransitionType

No ModellingRule

0:HasComponent

Object

InitializingToRunning

 

0:TransitionType

No ModellingRule

0:HasComponent

Object

InterruptedToAborted

 

0:TransitionType

No ModellingRule

0:HasComponent

Object

InterruptedToRunning

 

0:TransitionType

No ModellingRule

0:HasComponent

Object

RunningToAborted

 

0:TransitionType

No ModellingRule

0:HasComponent

Object

RunningToEnded

 

0:TransitionType

No ModellingRule

0:HasComponent

Object

RunningToInterrupted

 

0:TransitionType

No ModellingRule

0:HasComponent

Object

RunningToRunning

 

0:TransitionType

No ModellingRule

 

The ProductionPartStateMachineType allows to send Events of ProductionPartTransitionEventType with every transition, as indicated in Table 44. This makes it possible to send all relevant information of the ProductionPartType the state machine instance belongs to with the TransitionEvent.

Ended is reached when the production on the part has finished. The PartQuality may be changed while in this state, implying that the part is measured after the production process. The part does not have to be mounted inside the machine tool while in this state.

Initializing implies the part is scheduled for production, but the machining process on the part has not yet started. The part does not have to be mounted inside the machine tool while in this state.

Running indicates that the processing of the part within the machine tool has been started or re-started and is currently running.

InitializingToRunning is triggered when the processing of the part starts. This Transition requires the part to be mounted within the machine tool.

RunningToEnded is triggered when the processing of the part finishes. This Transition does not require an update of the PartQuality.

Table 44 – ProductionPartStateMachineType Additional References

Source Path

ReferenceType

Is Forward

Target Path

AbortedToInitializing

0:FromState

True

ProductionStateMachineType

Aborted

 

0:ToState

True

ProductionStateMachineType

Initializing

 

0:HasEffect

True

ProductionPartTransitionEventType

EndedToInitializing

0:FromState

True

ProductionStateMachineType

Ended

 

0:ToState

True

ProductionStateMachineType

Initializing

 

0:HasEffect

True

ProductionPartTransitionEventType

InitializingToAborted

0:FromState

True

ProductionStateMachineType

Initializing

 

0:ToState

True

ProductionStateMachineType

Aborted

 

0:HasEffect

True

ProductionPartTransitionEventType

InitializingToRunning

0:FromState

True

ProductionStateMachineType

Initializing

 

0:ToState

True

ProductionStateMachineType

Running

 

0:HasEffect

True

ProductionPartTransitionEventType

InterruptedToAborted

0:FromState

True

ProductionStateMachineType

Interrupted

 

0:ToState

True

ProductionStateMachineType

Aborted

 

0:HasEffect

True

ProductionPartTransitionEventType

InterruptedToRunning

0:FromState

True

ProductionStateMachineType

Interrupted

 

0:ToState

True

ProductionStateMachineType

Running

 

0:HasEffect

True

ProductionPartTransitionEventType

RunningToAborted

0:FromState

True

ProductionStateMachineType

Running

 

0:ToState

True

ProductionStateMachineType

Aborted

 

0:HasEffect

True

ProductionPartTransitionEventType

RunningToEnded

0:FromState

True

ProductionStateMachineType

Running

 

0:ToState

True

ProductionStateMachineType

Ended

 

0:HasEffect

True

ProductionPartTransitionEventType

RunningToInterrupted

0:FromState

True

ProductionStateMachineType

Running

 

0:ToState

True

ProductionStateMachineType

Interrupted

 

0:HasEffect

True

ProductionPartTransitionEventType

RunningToRunning

0:FromState

True

ProductionStateMachineType

Running

 

0:ToState

True

ProductionStateMachineType

Running

 

0:HasEffect

True

ProductionPartTransitionEventType

 


 

8.4.12     ProductionStatisticsType

The ProductionStatisticsType aggregates statistics information related to production on the machine tool.

The ProductionStatisticsType is formally defined in Table 45.

Table 45 – ProductionStatisticsType Definition

Attribute

Value

BrowseName

ProductionStatisticsType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node.

0:HasComponent

Variable

PartsProducedInLifetime

0:UInt32

BaseDataVariableType

O, RO

 

PartsProducedInLifetime is the counter for the total number of produced parts during the machine tool’s lifetime. The exact way this number is acquired may differ between different machine tools. No quality information of PartsProducedInLifetime can be given.

8.5      Equipment

8.5.1       EquipmentType

The EquipmentType is used to structure elements for machine tool equipment.

The EquipmentType is formally defined in Table 46.

Table 46 – EquipmentType Definition

Attribute

Value

BrowseName

EquipmentType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node.

0:HasComponent

Object

Tools

 

ToolListType

O

 

Tools is the entry point to the list of BaseToolType subtype instances in the machine tool. The list of tools provided here shall contain the tools that are present in the machine tool and the magazines the machine tool has automated access to.

8.5.2       ToolListType

The ToolListType is a list of tools, where a tool may be a single tool or a multitool.

The ToolListType is formally defined in Table 47.

Table 47 – ToolListType Definition

Attribute

Value

BrowseName

ToolListType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node.

0:HasComponent

Object

<Tool>

 

BaseToolType

OP

0:HasProperty

Variable

NodeVersion

0:String

0:PropertyType

O, RO

0:GeneratesEvent

ObjectType

0:GeneralModelChangeEventType

 

 

 

 

<Tool> is an OptionalPlaceholder for nodes of BaseToolType. The tool list can thus contain any number of tools, including none. For the DisplayName of the <Tool>, it is recommended to use the value of the Name Property of the respective BaseToolType instance.

The contents of the ToolListType instance can change during the Server runtime (e.g. if tools are inserted into the machine tool or removed from it). A change in the list can be indicated using the NodeVersion Property and the GeneralModelChangeEventType. The NodeVersion and the GeneralModelChangeEventType are intended to be used in the way defined in OPC 10000-3 and 7.3.

8.5.3       BaseToolType

The BaseToolType serves as a supertype to the ToolType and the MultiToolType. It is an abstract type, meaning it is not instantiated, only the subtypes are.

The BaseToolType is formally defined in Table 48.

Table 48 – BaseToolType Definition

Attribute

Value

BrowseName

BaseToolType

IsAbstract

True

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node.

0:HasSubtype

ObjectType

MultiToolType

Defined in 8.5.5

0:HasSubtype

ObjectType

ToolType

Defined in 8.5.4

0:HasProperty

Variable

Identifier

0:String

0:PropertyType

O, RO

0:HasComponent

Object

Location

 

0:BaseObjectType

O

0:HasProperty

Variable

Name

0:String

0:PropertyType

O, RO

 

Table 49 – BaseToolType Additional Subcomponents

Source Path

References

NodeClass

BrowseName

DataType

TypeDefinition

Others

Location

0:HasProperty

Variable

Name

0:String

0:PropertyType

M, RO

Location

0:HasProperty

Variable

PlaceNumber

0:UInt16

0:PropertyType

M, RO

 

Identifier is a unique identifier for a tool. The Identifier can be used to provide a unique ID given by a superordinated management system. This ID can’t be generated on the machine, it has to be transferred to the machine by a global tool management system.

The Location indicates where the tool is located, represented by Name, a name for the tool’s location (e.g. the tool magazine) and PlaceNumber, the place number at this location (refer to Table 49). If there is a shared magazine for multiple machines, a tool will be shown in the tool list (see 8.5.1 and 8.5.2) of all machines for which the tool is available.

The Name is used to name a tool to ease recognition. This name can be specific to the tool (e.g. “special_formpress_part294”), to the type of tool (e.g. “8mm drill”) or to the program (e.g. “T3”).

8.5.4       ToolType

The ToolType is the representation of a tool. Tools are exchangeable components used in a machine tool to execute the production process and may for example be drills, ball milling heads, cutting inserts, pinching tools and so forth. It may also be a non-contact tool, for example a processing laser.

The ToolType is formally defined in Table 50.

Table 50 – ToolType Definition

Attribute

Value

BrowseName

ToolType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseToolType defined in 8.5.3 i.e. inheriting the InstanceDeclarations of that Node.

0:HasComponent

Variable

ControlIdentifier1

0:UInt32

0:BaseDataVariableType

M, RO

0:HasComponent

Variable

ControlIdentifier2

0:UInt32

0:BaseDataVariableType

O, RO

0:HasComponent

Variable

ControlIdentifierInterpretation

ToolManagement

0:BaseDataVariableType

M, RO

0:HasComponent

Variable

LastUsage

0:UtcTime

0:BaseDataVariableType

O, RO

0:HasComponent

Variable

Locked

0:Boolean

0:BaseDataVariableType

M, RO

0:HasComponent

Variable

PlannedForOperating

0:Boolean

0:BaseDataVariableType

O, RO

0:HasComponent

Object

ToolLife

 

0:BaseObjectType

O

 

The components of the ToolType have additional references which are defined in Table 51.

Table 51 – ToolType Additional Subcomponents

Source Path

References

NodeClass

BrowseName

DataType

TypeDefinition

Others

Locked

0:HasProperty

Variable

ReasonForLocking

ToolLocked

0:PropertyType

M, RO

ToolLife

0:HasComponent

Variable

<ToolLifeEntry>

0:Number

ToolLifeType

MP, RO

 

The two components ControlIdentifier1, ControlIdentifier2 are to be interpreted depending on ControlIdentifierInterpretation (refer to 12.10). This reflects the main methods which CNC-based tool management approaches use. In a ToolNumberBased approach, only ControlIdentifier1 is provided and sufficient to identify the tool. In a system with a ToolGroupBasedManagemet, tools are identified by a group and an indexing number inside this group, which are provided as ControlIdentifier1 and ControlIdentifier2 respectively. Should yet another approach be present in a given system, this is indicated by the ControlIdentifierInterpretation being reported as custom. It shall be noted that this identification data is used to identify the tool in the reference frame of the tool management system inside the machine. In many applications the machine control system uses these identifiers to handle multiple tools which are equivalent and present in the machine as spares. For an identification of the tool inside the NC program or globally, independent of the machine management view, the properties Name and Identifier are provided by the BaseToolType.

LastUsage is the time, were the specific tool was the active tool on a tool carrier for the last time, while the machine was operating in an automatic mode (e.g. for CNC controllers: in Mdi- or Automatic-mode).

The property Locked represents whether the tool was locked from use in processing. If True, the tool was locked. It has an additional property as seen in Table 51, ReasonForLocking. ReasonForLocking is defined in 12.8.

The component PlannedForOperating marks tools which the machine tool control can already mark as being needed for the running NC program or process when being True.

The ToolLife reports on how the tool use and tool life is being currently managed and how far the use of the tool has progressed. If more than one measurement is provided as <ToolLifeEntry>, they shall show the same value as if only one entry was provided, so they shall not be accumulated by a Client.

8.5.5       MultiToolType

Figure 15 – Instance Example of a MultiToolType Object

The MultiToolType represents a unit of different tools, usually used in order to have several tools available in-process without requiring explicit tool-changes. Multitools carry several tools on one tool magazine socket or one revolver index position and will be mounted into the machine tool as one prepared unit.

Typical applications are in turning, when one indexed position of the tool revolver holds several outer-diameter cutting inserts and boring tools, such that a tool change process can quickly complete by merely readjusting the CNC setpoint position tool compensation.

An instance example on how to instantiate the MultiToolType is shown in Figure 15.

The MultiToolType is formally defined in Table 52.

Table 52 – MultiToolType Definition

Attribute

Value

BrowseName

MultiToolType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseToolType defined in 8.5.3 i.e. inheriting the InstanceDeclarations of that Node.

0:HasComponent

Object

<Tool>

 

ToolType

OP

 

<Tool> is a placeholder for instances of ToolType. Using this placeholder, the individual ToolType instances making up the MultiTool can be represented in the information model. For individual tools within the MultiTool, use of the Location object is not recommended.

8.6      Notification

8.6.1       NotificationType

The NotificationType is used to structure information given in the MachineToolType. It groups the messages and alerts of the machine tool and contains the prognoses for the machining operation.

The NotificationType is formally defined in Table 53.

Table 53 – NotificationType Definition

Attribute

Value

BrowseName

NotificationType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node.

0:HasComponent

Object

Messages

 

MessagesType

O

0:HasComponent

Object

Prognoses

 

PrognosisListType

O

 

Messages is the node sending events, which are used for errors, warnings and messages. The respective references are formally defined in Table 54.

Prognoses contains a list of the current prognoses for machine tool operation. Reliability for any prognosis in the list will rely on the specific case and cannot be guaranteed to be precise.

8.6.2       MessagesType

The MessagesType is used to define the object sending events. These events are used for errors, warnings and messages.

The MessagesType is formally defined in Table 54.

Table 54 – MessagesType Definition

Attribute

Value

BrowseName

MessagesType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node.

0:GeneratesEvent

ObjectType

AlertType

 

 

 

0:GeneratesEvent

ObjectType

NotificationEventType

 

 

 

 

To differentiate between errors, warnings and messages on the interface, the following convention shall be used, with regard to the recommendations in OPC 10000-5:

Errors have a high Severity between 667 and 1000 and are using an AlertType.

Warnings have a medium Severity between 334 and 666 and are using an AlertType.

Messages have a low Severity lower or equal to 333 and are using a NotificationEventType.

8.6.3       PrognosisListType

The PrognosisListType is a structuring node to collect predictions about future times when certain interaction with the machine tool may be necessary.

The PrognosisListType is formally defined in Table 55.

Table 55 – PrognosisListType Definition

Attribute

Value

BrowseName

PrognosisListType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node.

0:HasComponent

Object

<Prognosis>

 

PrognosisType

OP

0:HasProperty

Variable

NodeVersion

String

0:PropertyType

O, RO

0:GeneratesEvent

ObjectType

0:GeneralModelChangeEventType

 

 

 

 

<Prognosis> is an optional placeholder for PrognosisType nodes. Thus, the PrognosisListType can have any number of prognoses as components, including none. If the number of prognoses in this list changes during the runtime of the OPC UA server, the NodeVersion and GeneralModelChangeEventType can be used to indicate those changes. The NodeVersion and the GeneralModelChangeEventType are intended to be used in the way defined in OPC 10000-3 and 7.3.

8.6.4       PrognosisType

The PrognosisType is the most basic prognosis type and the supertype to more specific prognosis types. It is an abstract type, meaning it is not instantiated, only the subtypes are.

The PrognosisType is formally defined in Table 56.

Table 56 – PrognosisType Definition

Attribute

Value

BrowseName

PrognosisType

IsAbstract

True

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node.

0:HasSubtype

ObjectType

MaintenancePrognosisType

Defined in 8.6.5

0:HasSubtype

ObjectType

ManualActivityPrognosisType

Defined in 8.6.6

0:HasSubtype

ObjectType

PartUnloadPrognosisType

Defined in 8.6.8

0:HasSubtype

ObjectType

ProcessChangeoverPrognosisType

Defined in 8.6.9

0:HasSubtype

ObjectType

ProductionJobEndPrognosisType

Defined in 8.6.10

0:HasSubtype

ObjectType

PartLoadPrognosisType

Defined in 8.6.7

0:HasSubtype

ObjectType

ToolLoadPrognosisType

Defined in 8.6.12

0:HasSubtype

ObjectType

ToolUnloadPrognosisType

Defined in 8.6.13

0:HasSubtype

ObjectType

ToolChangePrognosisType

Defined in 8.6.11

0:HasSubtype

ObjectType

UtilityChangePrognosisType

Defined in 8.6.14

0:HasProperty

Variable

PredictedTime

0:UtcTime

0:PropertyType

M, RO

 

PredictedTime is used to indicate the point in time the predicted user interaction will become necessary.

8.6.5       MaintenancePrognosisType

The MaintenancePrognosisType is a prognosis indicating at which time in the future a specific maintenance action may become necessary.

Examples may be oil changes, filter mat replacements or regular checks.

The MaintenancePrognosisType is formally defined in Table 57.

Table 57 – MaintenancePrognosisType Definition

Attribute

Value

BrowseName

MaintenancePrognosisType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the PrognosisType defined in 8.6.4 i.e. inheriting the InstanceDeclarations of that Node.

0:HasComponent

Variable

Activity

0:LocalizedText

0:BaseDataVariableType

M, RO

 

Activity indicates the specific maintenance task to perform.

8.6.6       ManualActivityPrognosisType

The ManualActivityPrognosisType is a prognosis indicating at which time in the future a manual intervention may become necessary.

An example for a manual intervention is a measurement or control activity, which needs to be carried out during the run of the program.

The ManualActivityPrognosisType is formally defined in Table 58.

Table 58 – ManualActivityPrognosisType Definition

Attribute

Value

BrowseName

ManualActivityPrognosisType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the PrognosisType defined in 8.6.4 i.e. inheriting the InstanceDeclarations of that Node.

0:HasComponent

Variable

Activity