Importing Information Models from OPC UA NodeSet files
01.09.2020
Changelog
4.2.2022
- Updated the test setup to use Prosys OPC UA SDK for Java 4.7.0-7
- Added links to NodeSet files on the OPC Foundation’s GitHub
- Added links to Code Generator configuration files that exclude Nodes with unsupported ValueRanks or that would cause name clashes
- Added instructions on how to fix compatibility issues in the following NodeSet files: Opc.Ua.AutoID.NodeSet2.xml, Opc.Ua.IOLink.NodeSet2.xml, Opc.Ua.CSPPlusForMachine.NodeSet2.xml and Opc.Ua.CAS.NodeSet2.xml
20.12.2021
- Updated the test setup to use Prosys OPC UA SDK for Java 4.6.2-1636 and Prosys OPC UA Simulation Server 5.1.4-361
- Tested new information models: ISA-95 Job Control, PROFIenergy, DEXPI, OpenSCS, I4AAS, Pumps, CAS, Glass/Flat, Woodworking, Tightening and Weihenstephan
- Sorted information models by their specification numbers, see OPC UA Online Reference
- Icons are used to indicate success, success with warnings and failure
- Added links to online specifications of information models
7.12.2020
- Updated the test setup to use Prosys OPC UA SDK for Java 4.5.0-1291 and Prosys OPC UA Simulation Server 5.0.4-284
- Variable Nodes with unsupported ValueRanks are excluded in the Code Generator’s configuration file to enable generating code for NodeSet files containing such variables
- Tested new information models: Industrial Automation, Machinery and Machine Tool
- Added publication dates of NodeSet files
Introduction to NodeSet files
OPC UA uses information models to provide semantics for the data exposed by an OPC UA Server. The standard OPC UA information model is defined in the fifth part of the specification and is used by all OPC UA Servers. This information model is used as a basis for defining new information models for various applications such as modeling devices and their components as Nodes.
OPC UA defines Information Model XML Schema, which specifies how to represent information models in XML format. XML-files representing information models are formally called OPC UA NodeSet files or simply NodeSet files. The OPC Foundation maintains a GitHub repository containing NodeSet files and other files.
Users can also generate NodeSet files for their own information models with OPC UA modeling tools such as OPC UA Modeler.
Prosys OPC Products and NodeSet Files
Prosys OPC UA SDK for Java supports NodeSet files by loading the information model directly from a NodeSet file with loadModel methods of UaAddressSpace interface and by generating Java classes based on a NodeSet file or a group of NodeSet files with the Code Generator. Generating Java classes with the Code Generator allows augmenting the generated code to implement Methods defined in the information model. The generated code also makes it more convenient to add instances based on the TypeDefinitionNodes of the information model with Java classes representing them to the Server’s AddressSpace and handling those instances with clearly named methods. The code excerpt below demonstrates how instances of MotionDeviceSystemType and MotionDeviceType can be added easily to the Server’s AddressSpace with code generated from the Robotics information model.
The Professional Edition of Prosys OPC UA Simulation Server can import Namespaces from NodeSet files. This allows adding instances of the imported ObjectType and VariableType Nodes to the Simulation Server’s AddressSpace in the Objects tab. As Simulation Server uses Prosys OPC UA SDK for Java, importing Namespaces from NodeSet files to Simulation Server is similar to loading them to any Server application developed with the SDK. However, the version of the SDK used by the Simulation Server isn’t always the latest version of the SDK, which means that there can be some differences between Server applications developed with the latest version of the SDK and Simulation Server using an older version of the SDK.
Incompatibility Problems
Ideally, the NodeSet files available at the OPC Foundation’s GitHub repository could be used as they are by Prosys OPC UA SDK for Java and Prosys OPC UA Simulation Server. Unfortunately, not all of these NodeSet files can be used to import information models. While some NodeSet files require a newer version of the standard information model than the one supported by the SDK, some NodeSet files contain modeling errors that prevent using them without fixing them manually.
Name Clashes
The Code Generator also places some additional restrictions on the NodeSet files, and name clashes between the generated methods can happen in various situations. For example, let’s consider TemperatureControlType Node with two child Nodes: SetpointTemperature Variable of Double DataType and SetSetpointTemperature Method with a single InputArgument field with Double DataType. When processed with the Code Generator, the generated TemperatureControlType Java class will have two setSetpointTemperature methods with double parameter where one of the methods is for setting the Value of the SetpointTemperature Variable, and the other method is for calling the SetSetpointTemperature Method. These methods are implemented by TemperatureControlTypeNodeBase class, and their implementation is shown in the code excerpt below, where the first method sets the Value and the second method calls the Method. Other generated methods called by these two methods have been excluded from this excerpt. As different methods in a Java class must have different method signatures, this piece of code causes Java compiler errors.
However, name clashes in the generated code can be fixed manually by renaming methods to give them unique method signatures. In the case of TemperatureControlType, renaming either of the two setSetpointTemperature methods in all classes it appears in would solve the name clash.
Name clashes in the generated code can also be prevented by excluding the Nodes that would generate them in the Code Generator’s configuration files. Such Nodes have been excluded in the Code Generator configuration files linked to this blog post. Note, that excluding Nodes only affects the API generated by the Code Generator and not the AddressSpace where the excluded Nodes will still be present.
Unsupported ValueRanks
At the moment, the Code Generator supports Variable Nodes with ValueRanks of -1 and greater than or equal to 1. Some NodeSet files contain Variable Nodes with other ValueRanks such as -2 (except for BaseDataType) or -3 and generating code for such Nodes is not supported. In order to generate code for such NodeSet files, Nodes with unsupported ValueRanks must be excluded by adding the BrowseName of the Node to the excludes elements of the Code Generator’s configuration file.
Nodes with unsupported ValueRanks have been excluded in the Code Generator configuration files linked to this blog post. Again, this only affects the API generated by the Code Generator and not the AddressSpace.
Test Setup
The purpose of this blog post is to provide information on the compatibility of the NodeSet files available at the OPC Foundation’s GitHub repository with Prosys OPC UA SDK for Java and Prosys OPC UA Simulation Server.
The information model importing tests were performed on a Windows 10 PC with Prosys OPC UA SDK for Java version 4.7.0-7 and Prosys OPC UA Simulation Server version 5.1.4-361 The SDK is tested with both code generation based on NodeSet files with the Code Generator and loading information models directly to a Server’s AddressSpace from NodeSet files with loadModel methods of UaAddressSpace interface. Simulation Server is tested with Import NodeSet File function of Namespaces tab.
The tested NodeSet files were downloaded from the OPC Foundation’s GitHub Repository’s v1.04 branch. No modifications were made to the NodeSet files. Most information models consist of a single NodeSet file, but some information models consist of multiple NodeSet files for modularity.
Note that the version information in a NodeSet file is not updated automatically every time the model is updated.
Predefined Code Generator configuration files
The Code Generator requires a configuration file that defines how and where the respective code should be generated. We have included predefined versions that let you generate usable code from each NodeSet file, unless the NodeSet file is invalid or otherwise not supported by the Code Generator.
You must first ensure that the NodeSet and all NodeSet files that it depends on, are in the codegen/commandline/models folder. After that, you can generate code by running
codegen\commandline\bin\codegen.bat -c CONF
or
codegen/commandline/bin/codegen.sh -c CONF
where CONF is the path to the configuration file.
Test Results
The test results for the tested NodeSet files are summarized below. indicates success, indicates success that requires modifications to the NodeSet or exclude-definitions in the configuration or success with warnings and indicates failure. You can click on icons in the table to download the Code Generator configuration files that should work fine.
Name | NamespaceUri | SDK: loadModel | SDK: Code Generator | Simulation Server |
GDS (10000-12) | http://opcfoundation.org/UA/GDS/ | |||
Safety (10000-15) | http://opcfoundation.org/UA/Safety | |||
DI (10000-100) | http://opcfoundation.org/UA/DI/ | |||
IA (10000-200) | http://opcfoundation.org/UA/IA/ | |||
ADI (10020) | http://opcfoundation.org/UA/ADI/ | |||
ISA-95 (10030) | http://www.OPCFoundation.org/UA/2013/01/ISA95 | |||
ISA95JOBCONTROL (10031-4) | http://opcfoundation.org/UA/ISA95-JOBCONTROL | |||
IEC61850 (10040) | http://opcfoundation.org/UA/IEC61850-6 | |||
http://opcfoundation.org/UA/IEC61850-7-3 | ||||
http://opcfoundation.org/UA/IEC61850-7-4 | ||||
PLCopen (30000) | http://PLCopen.org/OpcUa/IEC61131-3/ | |||
AutoID (30010) | http://opcfoundation.org/UA/AutoID/ | |||
MDIS (30020) | http://opcfoundation.org/UA/MDIS | |||
AutomationML (30040) | http://opcfoundation.org/UA/AML/ | |||
http://opcfoundation.org/UA/AMLLibs/ | ||||
PackML (30050) | http://opcfoundation.org/UA/PackML/ | |||
TMC (30060) | http://opcfoundation.org/UA/TMC/ | |||
MTConnect (30070-1) | http://opcfoundation.org/UA/MTConnect/v2/ | |||
FDI (30080-5 and 30080-7) | http://fdi-cooperation.com/OPCUA/FDI5/ | |||
http://fdi-cooperation.com/OPCUA/FDI7/ | ||||
PADIM (30081) | http://opcfoundation.org/UA/Dictionary/IRDI | |||
http://opcfoundation.org/UA/PADIM/ | ||||
FDT (30090) | http://opcfoundation.org/UA/schemas/FDT/1.0/ | |||
Sercos (30100) | http://sercos.org/UA/ | |||
POWERLINK (30110) | http://opcfoundation.org/UA/POWERLINK/ | |||
IOLink (30120) | http://opcfoundation.org/UA/IOLink/ | |||
http://opcfoundation.org/UA/IOLink/IODD/ | ||||
CSPPlus for Machine (30130) | http://opcfoundation.org/UA/CSPPlusForMachine/ | |||
PROFINET (30140) | http://opcfoundation.org/UA/PROFINET/ | |||
PROFIenergy (30141) | http://opcfoundation.org/UA/PNEM/ | |||
Commercial Kitchen Equipment (30200) | http://opcfoundation.org/UA/CommercialKitchenEquipment/ | |||
DEXPI (30250) | http://opcfoundation.org/UA/DEXPI/ | |||
OpenSCS (30260) | http://opcfoundation.org/UA/OPENSCS-SER/ | |||
I4AAS (30270) | http://opcfoundation.org/UA/I4AAS/ | |||
Machinery (40001-1) | http://opcfoundation.org/UA/Machinery/ | |||
Robotics (40010-1) | http://opcfoundation.org/UA/Robotics/ | |||
PlasticsRubber (40077, 40082, 40083 and 40084) | http://opcfoundation.org/UA/PlasticsRubber/IMM2MES/ | |||
http://opcfoundation.org/UA/PlasticsRubber/TCD/ | ||||
http://opcfoundation.org/UA/PlasticsRubber/HotRunner/ | ||||
http://opcfoundation.org/UA/PlasticsRubber/LDS/ | ||||
http://opcfoundation.org/UA/PlasticsRubber/GeneralTypes/ | ||||
http://opcfoundation.org/UA/PlasticsRubber/Extrusion/GeneralTypes/ | ||||
http://opcfoundation.org/UA/PlasticsRubber/Extrusion/ExtrusionLine/ | ||||
http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Extruder/ | ||||
http://opcfoundation.org/UA/PlasticsRubber/Extrusion/HaulOff/ | ||||
http://opcfoundation.org/UA/PlasticsRubber/Extrusion/MeltPump/ | ||||
http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Filter/ | ||||
http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Die/ | ||||
http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Pelletizer/ | ||||
http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Cutter/ | ||||
http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Calibrator/ | ||||
http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Corrugator/ | ||||
http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Calender/ | ||||
MachineVision (40100-1) | http://opcfoundation.org/UA/MachineVision | |||
Scales (40200) | http://opcfoundation.org/UA/Scales | |||
Pumps (40223) | http://opcfoundation.org/UA/Pumps/ | |||
CAS (40250-1) | http://opcfoundation.org/UA/CAS/ | |||
Glass/Flat (40301) | http://opcfoundation.org/UA/Glass/Flat/ | |||
Woodworking (40550-1) | http://opcfoundation.org/UA/Woodworking/ | |||
http://opcfoundation.org/UA/Eumabois/ | ||||
Tightening (40451-1) | http://opcfoundation.org/UA/IJT/ | |||
Machine Tool (40501-1) | http://opcfoundation.org/UA/MachineTool/ | |||
CNC Systems (40502) | http://opcfoundation.org/UA/CNC | |||
Weihenstephan (40600) | http://opcfoundation.org/UA/Weihenstephan/ |
The detailed test results for the tested NodeSet files are presented below.
Global Discovery Server
Specification | OPC 10000-12 - Part 12: Discovery and Global Services |
NamespaceUri | http://opcfoundation.org/UA/GDS/ |
NodeSet file | Opc.Ua.Gds.NodeSet2.xml |
Model version | 1.04.4 |
Publication date | 8.1.2020 |
Latest change | 18.11.2020 |
SDK: loadModel | Success |
SDK: Code Generator | Success |
Simulation Server | Success |
Safety
Specification | OPC 10000-15 - Part 15: Safety |
NamespaceUri | http://opcfoundation.org/UA/Safety |
NodeSet file | Opc.Ua.Safety.NodeSet2.xml |
Model version | 1.0 |
Publication date | 31.10.2019 |
Latest change | 17.7.2020 |
SDK: loadModel | Success |
SDK: Code Generator | Success |
Simulation Server | Success |
Devices
Specification | OPC 10000-100 - Part 100: Device Information Model |
NamespaceUri | http://opcfoundation.org/UA/DI/ |
NodeSet file | Opc.Ua.Di.NodeSet2.xml |
Model version | 1.03.0 |
Publication date | 9.3.2021 |
Latest change | 11.4.2021 |
SDK: loadModel | Success |
SDK: Code Generator | Success |
Simulation Server | Success |
Industrial Automation
Specification | OPC 10000-200 - Part 200: Industrial Automation |
NamespaceUri | http://opcfoundation.org/UA/IA/ |
NodeSet file | Opc.Ua.IA.NodeSet2.xml |
Model version | 1.01.0 |
Publication date | 31.7.2021 |
Latest change | 5.8.2021 |
SDK: loadModel | Success |
SDK: Code Generator | Success |
Simulation Server | Success |
Analyzer Devices
Specification | OPC 10020 - UA for Analyzer Devices |
NamespaceUri | http://opcfoundation.org/UA/ADI/ |
NodeSet file | Opc.Ua.Adi.NodeSet2.xml |
Model version | 1.01 |
Publication date | 31.7.2013 |
Latest change | 28.8.2020 |
SDK: loadModel | Success |
SDK: Code Generator | Success |
Simulation Server | Success |
ISA-95
Specification | OPC 10030 - UA for ISA-S95 |
NamespaceUri | http://www.OPCFoundation.org/UA/2013/01/ISA95 |
NodeSet file | Opc.ISA95.NodeSet2.xml |
Model version | 1.00 |
Publication date | 6.11.2013 |
Latest change | 2.7.2021 |
SDK: loadModel | Success |
SDK: Code Generator | Fail |
Simulation Server | Success |
Additional information
GeoSpatialLocationType is a subtype of PropertyType, which causes errors in the Java code generated by the Code Generator as the SDK doesn’t support adding subtypes to PropertyType.
ISA-95 Job Control
Specification | OPC 10031-4 - UA Companion Specification for ISA-95 Job Control |
NamespaceUri | http://opcfoundation.org/UA/ISA95-JOBCONTROL |
NodeSet file | opc.ua.isa95-jobcontrol.nodeset2.xml |
Model version | 1.0.0 |
Publication date | 31.3.2021 |
Latest change | 2.7.2021 |
SDK: loadModel | Success |
SDK: Code Generator | Success |
Simulation Server | Success |
IEC61850
Specification | OPC 10040 - IEC61850-6 Companion Specification |
NamespaceUri | http://opcfoundation.org/UA/IEC61850-6 |
NodeSet file | Opc.Ua.IEC61850-6.NodeSet2.xml |
Model version | 2.0 |
Publication date | 5.2.2018 |
Latest change | 28.6.2020 |
SDK: loadModel | Success |
SDK: Code Generator | Untested |
Simulation Server | Fail |
Additional information
This NodeSet file extends the information model defined in http://opcfoundation.org/UA/IEC61850-7-3. As the NodeSet file containing that information model is incompatible with the Code Generator, this NodeSet file could not be tested with the Code Generator.
This NodeSet file contains View Nodes, which are not supported by Simulation Server.
Specification | OPC 10040 - IEC61850-7-3 Companion Specification |
NamespaceUri | http://opcfoundation.org/UA/IEC61850-7-3 |
NodeSet file | Opc.Ua.IEC61850-7-3.NodeSet2.xml |
Model version | 2.0 |
Publication date | 5.2.2018 |
Latest change | 28.6.2020 |
SDK: loadModel | Success |
SDK: Code Generator | Fail |
Simulation Server | Success |
Additional information
The NodeSet file contains enumeration values that are not supported by the Code Generator, including “1-of-n-control”, “°C” and empty value.
Specification | OPC 10040 - IEC61850-7-4 Companion Specification |
NamespaceUri | http://opcfoundation.org/UA/IEC61850-7-4 |
NodeSet file | Opc.Ua.IEC61850-7-4.NodeSet2.xml |
Model version | 2.0 |
Publication date | 5.2.2018 |
Latest change | 28.6.2020 |
SDK: loadModel | Success |
SDK: Code Generator | Untested |
Simulation Server | Success |
Additional information
This NodeSet file extends the information model defined in http://opcfoundation.org/UA/IEC61850-7-3. As the NodeSet file containing that information model is incompatible with the Code Generator, this NodeSet file could not be tested with the Code Generator.
PLCopen
Specification | OPC 30000 - UA for Programmable Logic Controllers based on IEC 61131-3 |
NamespaceUri | http://PLCopen.org/OpcUa/IEC61131-3/ |
NodeSet file | Opc.Ua.PLCopen.NodeSet2_V1.02.xml |
Model version | 1.02 |
Publication date | 25.11.2020 |
Latest change | 25.11.2020 |
SDK: loadModel | Success |
SDK: Code Generator | Success |
Simulation Server | Success |
AutoID
Specification | OPC 30010 - UA for AutoId Devices |
NamespaceUri | http://opcfoundation.org/UA/AutoID/ |
NodeSet file | Opc.Ua.AutoID.NodeSet2.xml |
Model version | 1.01 |
Publication date | 18.6.2020 |
Latest change | 27.6.2020 |
SDK: loadModel | Success |
SDK: Code Generator | Success if the NodeSet file is fixed manually |
Simulation Server | Success |
Additional information
OpticalVerifierDeviceType has Scan Method with OutputArguments that have wrong WGS84Coordinate DataType instead of correct OpticalVerifierScanResult DataType, which causes the Code Generator to generate code with invalid casts. This can be fixed before generating code by opening Opc.Ua.AutoID.NodeSet2.xml and searching for UaVariable with NodeId "ns=1;i=6076" and changing the DataType of Results from "ns=1;i=3027" to "ns=1;i=3026". For the current version of the NodeSet file, the NodeId that needs to be changed is on line 4252.
MDIS
Specification | OPC 30020 - MDIS Companion Specification |
NamespaceUri | http://opcfoundation.org/UA/MDIS |
NodeSet file | Opc.MDIS.NodeSet2.xml |
Model version | 1.20 |
Publication date | 3.10.2018 |
Latest change | 28.6.2020 |
SDK: loadModel | Fail |
SDK: Code Generator | Fail |
Simulation Server | Fail |
Additional information
This information model uses HasProperty References to reference Nodes that are not of PropertyType, which is against the specification.
AutomationML
Specification | OPC 30040 - UA for AutomationML |
NamespaceUri | http://opcfoundation.org/UA/AML/ |
NodeSet file | Opc.Ua.AMLBaseTypes.NodeSet2.xml |
Model version | 1.00 |
Publication date | 22.2.2016 |
Latest change | 28.6.2020 |
SDK: loadModel | Success |
SDK: Code Generator | Success |
Simulation Server | Success |
Specification | OPC 30040 - UA for AutomationML |
NamespaceUri | http://opcfoundation.org/UA/AMLLibs/ |
NodeSet file | Opc.Ua.AMLLibraries.NodeSet2.xml |
Model version | Version number is missing in the NodeSet file |
Publication date | Publication date is missing in the NodeSet file |
Latest change | 17.6.2020 |
SDK: loadModel | Success |
SDK: Code Generator | Fail |
Simulation Server | Success with warnings |
Additional information
The values of some Nodes could not be loaded when loading the information model from the NodeSet file with Simulation Server.
The NodeSet file contains two ObjectType Nodes with BrowseName Communication, which would result into two Java classes with the same name in the same package, which causes the Code Generator to abort processing the NodeSet file.
PackML
Specification | OPC 30050 - UA for PackML (OMAC) |
NamespaceUri | http://opcfoundation.org/UA/PackML/ |
NodeSet file | Opc.Ua.PackML.NodeSet2.xml |
Model version | 1.01 |
Publication date | 8.10.2020 |
Latest change | 9.12.2020 |
SDK: loadModel | Success |
SDK: Code Generator | Success |
Simulation Server | Success with warnings |
Additional information
Loading the NodeSet file with Simulation Server generates Bad_DecodingError warnings.
Tobacco Machines
Specification | OPC 30060 - UA for Tobacco Machines |
NamespaceUri | http://opcfoundation.org/UA/TMC/ |
NodeSet file | Opc.Ua.TMC.NodeSet2.xml |
Model version | 1.0 |
Publication date | 11.10.2017 |
Latest change | 17.6.2020 |
SDK: loadModel | Success |
SDK: Code Generator | Fail |
Simulation Server | Success with warnings |
Additional information
The NodeSet file contains DatasetChangeLogType and DataSetChangeLogType ObjectTypes, which the Code Generator is unable to generate into separate files on operating systems where filenames are not case sensitive and the generated code becomes unusable.
Loading the NodeSet file with Simulation Server generates Bad_DecodingError warnings.
MTConnect
Specification | OPC 30070-1 - UA for MTConnect, Part 1: Device Model |
NamespaceUri | http://opcfoundation.org/UA/MTConnect/v2/ |
NodeSet file | Opc.Ua.MTConnect.NodeSet2.xml |
Model version | 2.00.01 |
Publication date | 5.6.2020 |
Latest change | 28.8.2020 |
SDK: loadModel | Success |
SDK: Code Generator | Success |
Simulation Server | Fail |
Additional information
Simulation Server fails to validate the NodeSet file and aborts loading it.
FDI
Specification | OPC 30080-5 - UA for Field Device Integration (FDI) – Part 5: Host System Information Model |
NamespaceUri | http://fdi-cooperation.com/OPCUA/FDI5/ |
NodeSet file | Opc.Ua.Fdi5.NodeSet2.xml |
Model version | 1.1 |
Publication date | 14.7.2017 |
Latest change | 17.6.2020 |
SDK: loadModel | Success |
SDK: Code Generator | Success |
Simulation Server | Success |
Specification | OPC 30080-7 - UA for Field Device Integration (FDI) – Part 7: Communication Devices |
NamespaceUri | http://fdi-cooperation.com/OPCUA/FDI7/ |
NodeSet file | Opc.Ua.Fdi7.NodeSet2.xml |
Model version | Version number is missing in the NodeSet file |
Publication date | 14.7.2017 |
Latest change | 17.6.2020 |
SDK: loadModel | Success |
SDK: Code Generator | Success |
Simulation Server | Success |
Process Automation Devices
Specification | OPC 30081 - Process Automation Devices |
NamespaceUri | http://opcfoundation.org/UA/Dictionary/IRDI |
NodeSet file | Opc.Ua.IRDI.NodeSet2.xml |
Model version | 1.00 |
Publication date | 4.2.2020 |
Latest change | 15.9.2021 |
SDK: loadModel | Success |
SDK: Code Generator | Success |
Simulation Server | Success |
Specification | OPC 30081 - Process Automation Devices |
NamespaceUri | http://opcfoundation.org/UA/PADIM/ |
NodeSet file | Opc.Ua.PADIM.NodeSet2.xml |
Model version | 1.0.2 |
Publication date | 21.7.2021 |
Latest change | 15.9.2021 |
SDK: loadModel | Success |
SDK: Code Generator | Success if some Nodes are excluded |
Simulation Server | Success |
FDT
Specification | OPC 30090 – OPC UA for Field Device Tool (FDT) |
NamespaceUri | http://opcfoundation.org/UA/FDT/ |
NodeSet file | Opc.Ua.FDT.NodeSet.xml |
Model version | 1.01.00 |
Publication date | 6.8.2021 |
Latest change | 6.9.2021 |
SDK: loadModel | Success |
SDK: Code Generator | Success if some Nodes are excluded |
Simulation Server | Success |
Sercos Devices
Specification | OPC 30100 - UA for SERCOS Devices |
NamespaceUri | http://sercos.org/UA/ |
NodeSet file | Sercos.NodeSet2.xml |
Model version | 1.00 |
Publication date | 13.3.2017 |
Latest change | 27.6.2020 |
SDK: loadModel | Success |
SDK: Code Generator | Success |
Simulation Server | Success |
POWERLINK
Specification | OPC 30110 - UA for POWERLINK |
NamespaceUri | http://opcfoundation.org/UA/POWERLINK/ |
NodeSet file | Opc.Ua.POWERLINK.NodeSet2.xml |
Model version | 1.0.0 |
Publication date | 10.10.2017 |
Latest change | 17.6.2020 |
SDK: loadModel | Success |
SDK: Code Generator | Success |
Simulation Server | Success |
IO Link Devices and IO-Link Masters
Specification | OPC 30120 - OPC UA for IO-Link Devices and IO-Link Masters |
NamespaceUri | http://opcfoundation.org/UA/IOLink/ |
NodeSet file | Opc.Ua.IOLink.NodeSet2.xml |
Model version | 1.0 |
Publication date | 1.12.2018 |
Latest change | 28.8.2020 |
SDK: loadModel | Success |
SDK: Code Generator | Success if the NodeSet file is fixed manually |
Simulation Server | Success |
Additional information
Method Nodes "ns=1;i=7029" and "ns=1;i=7026" have the same BrowsePath excluding angle brackets causing the Code Generator to generate unusable code. This can be fixed before generating code by opening the NodeSet file and changing the BrowseName of either of these two Method Nodes such that they have different BrowsePaths. For the current version of the Nodeset file, the BrowseNames are on lines 4683 and 4692. For example, changing the latter BrowseName from "2:MethodIdentifier" to "2:Method" will fix the issue.
Specification | OPC 30120 - OPC UA for IO-Link Devices and IO-Link Masters |
NamespaceUri | http://opcfoundation.org/UA/IOLink/IODD/ |
NodeSet file | Opc.Ua.IOLinkIODD.NodeSet2.xml |
Model version | 1.0 |
Publication date | 1.12.2018 |
Latest change | 17.6.2020 |
SDK: loadModel | Success |
SDK: Code Generator | Success |
Simulation Server | Success |
CSPPlus for Machine
Specification | OPC 30130 - UA for Control & Communication System Profile (for Machine) CSP+ (CCLink) |
NamespaceUri | http://opcfoundation.org/UA/CSPPlusForMachine/ |
NodeSet file | Opc.Ua.CSPPlusForMachine.NodeSet2.xml |
Model version | 1.00 |
Publication date | 28.11.2017 |
Latest change | 27.6.2020 |
SDK: loadModel | Success if the NodeSet file is fixed manually |
SDK: Code Generator | Success if the NodeSet file is fixed manually |
Simulation Server | Success if the NodeSet file is fixed manually |
Additional information
The NodeSet file is missing alias declarations for IdType and NumericRange. This can be fixed by adding the following Alias elements to the Aliases element beginning at line 42 of the current version of the file:
<Alias Alias="IdType">i=256</Alias>
<Alias Alias="NumericRange">i=291</Alias>
PROFINET
Specification | OPC 30140 - OPC UA for PROFINET |
NamespaceUri | http://opcfoundation.org/UA/PROFINET/ |
NodeSet file | Opc.Ua.Pn.NodeSet2.xml |
Model version | 1.0.1 |
Publication date | 13.4.2021 |
Latest change | 16.4.2021 |
SDK: loadModel | Success with warnings |
SDK: Code Generator | Success if some Nodes are excluded |
Simulation Server | Success with warnings |
Additional information
The values of some Nodes could not be loaded when loading the model from the NodeSet file with the SDK and Simulation Server due to the use of & in ua:Text elements.
PROFIenergy
Specification | OPC 30141 - UA CS for PROFIenergy |
NamespaceUri | http://opcfoundation.org/UA/PNEM/ |
NodeSet file | Opc.Ua.PnEm.NodeSet2.xml |
Model version | 1.0.0 |
Publication date | 11.3.2021 |
Latest change | 20.3.2021 |
SDK: loadModel | Success |
SDK: Code Generator | Success |
Simulation Server | Success with warnings |
Additional information
Loading the NodeSet file with Simulation Server generates Bad_DecodingError warnings.
Commercial Kitchen Equipment
Specification | OPC 30200 - OPC UA for Commercial Kitchen Equipment |
NamespaceUri | http://opcfoundation.org/UA/CommercialKitchenEquipment/ |
NodeSet file | Opc.Ua.CommercialKitchenEquipment.NodeSet2.xml |
Model version | 1.0 |
Publication date | 12.7.2019 |
Latest change | 28.6.2020 |
SDK: loadModel | Success |
SDK: Code Generator | Success |
Simulation Server | Success |
DEXPI
Specification | OPC 30250 - UA Companion Specification for DEXPI |
NamespaceUri | http://opcfoundation.org/UA/DEXPI/ |
NodeSet file | Opc.Ua.DEXPI.NodeSet2.xml |
Model version | 1.0.0 |
Publication date | 10.9.2021 |
Latest change | 15.9.2021 |
SDK: loadModel | Success |
SDK: Code Generator | Success |
Simulation Server | Success |
OpenSCS
Specification | OPC 30260 - UA CS for OpenSCS Serialization Model |
NamespaceUri | http://opcfoundation.org/UA/OPENSCS-SER/ |
NodeSet file | Opc.Ua.OPENSCS.NodeSet2.xml |
Model version | 1.00 |
Publication date | 4.2.2019 |
Latest change | 2.7.2021 |
SDK: loadModel | Success |
SDK: Code Generator | Success |
Simulation Server | Success |
Industrie 4.0 Asset Administration Shell
Specification | OPC 30270 – UA for Industrie 4.0 Asset Administration Shell |
NamespaceUri | http://opcfoundation.org/UA/I4AAS/ |
NodeSet file | Opc.Ua.I4AAS.NodeSet2.xml |
Model version | 5.0.0 |
Publication date | 4.6.2021 |
Latest change | 2.7.2021 |
SDK: loadModel | Success |
SDK: Code Generator | Success |
Simulation Server | Success with warnings |
Additional information
Loading the NodeSet file with Simulation Server generates Bad_DecodingError warnings.
Machinery
Specification | OPC 40001-1 - UA CS for Machinery Part 1 - Basic Building Blocks |
NamespaceUri | http://opcfoundation.org/UA/Machinery/ |
NodeSet file | Opc.Ua.Machinery.NodeSet2.xml |
Model version | 1.01.0 |
Publication date | 25.2.2021 |
Latest change | 17.2.2021 |
SDK: loadModel | Success |
SDK: Code Generator | Success |
Simulation Server | Success |
Additional information
The publication date marked in the NodeSet XML file is 25.2.2021, which is after the latest change made to the file in 17.2.2021.
Robotics
Specification | OPC 40010-1 - UA for Robotics, Part 1: Vertical Integration |
NamespaceUri | http://opcfoundation.org/UA/Robotics/ |
NodeSet file | Opc.Ua.Robotics.NodeSet2.xml |
Model version | 1.01.2 |
Publication date | 20.5.2021 |
Latest change | 20.5.2021 |
SDK: loadModel | Success |
SDK: Code Generator | Success |
Simulation Server | Success |
Plastics and Rubber Machinery
Specification | OPC 40077 - UA CS for PlasticsRubber - Injection Moudling Machines to MES |
NamespaceUri | http://opcfoundation.org/UA/PlasticsRubber/IMM2MES/ |
NodeSet file | Opc.Ua.PlasticsRubber.IMM2MES.NodeSet2.xml |
Model version | 1.01 |
Publication date | 1.6.2020 |
Latest change | 8.4.2021 |
SDK: loadModel | Success |
SDK: Code Generator | Success if some Nodes are excluded |
Simulation Server | Success |
Specification | OPC 40082-1 - UA CS for PlasticsRubber - TCD |
NamespaceUri | http://opcfoundation.org/UA/PlasticsRubber/TCD/ |
NodeSet file | Opc.Ua.PlasticsRubber.TCD.NodeSet2.xml |
Model version | 1.01 |
Publication date | 1.6.2020 |
Latest change | 8.4.2021 |
SDK: loadModel | Success |
SDK: Code Generator | Success if some Nodes are excluded |
Simulation Server | Success |
Specification | OPC 40082-2 - UA CS for PlasticsRubber - HotRunner |
NamespaceUri | http://opcfoundation.org/UA/PlasticsRubber/HotRunner/ |
NodeSet file | Opc.Ua.PlasticsRubber.HotRunner.NodeSet2.xml |
Model version | 1.00 |
Publication date | 10.5.2021 |
Latest change | 2.7.2021 |
SDK: loadModel | Success |
SDK: Code Generator | Success if some Nodes are excluded |
Simulation Server | Success |
Specification | OPC 40082-3 - UA CS for PlasticsRubber - LDS |
NamespaceUri | http://opcfoundation.org/UA/PlasticsRubber/LDS/ |
NodeSet file | Opc.Ua.PlasticsRubber.LDS.NodeSet2.xml |
Model version | 1.00.1 |
Publication date | 21.6.2021 |
Latest change | 2.7.2021 |
SDK: loadModel | Success |
SDK: Code Generator | Success if some Nodes are excluded |
Simulation Server | Success |
Specification | OPC 40083 - UA CS for PlasticsRubber - General Types |
NamespaceUri | http://opcfoundation.org/UA/PlasticsRubber/GeneralTypes/ |
NodeSet file | Opc.Ua.PlasticsRubber.GeneralTypes.NodeSet2.xml |
Model version | 1.03 |
Publication date | 10.5.2021 |
Latest change | 2.7.2021 |
SDK: loadModel | Success |
SDK: Code Generator | Success if some Nodes are excluded |
Simulation Server | Success with warnings |
Additional information
Loading the NodeSet file with Simulation Server generates Bad_DecodingError warnings.
Specification | OPC 40084-1 - UA CS for PlasticsRubber - Extrusion - General Types |
NamespaceUri | http://opcfoundation.org/UA/PlasticsRubber/Extrusion/GeneralTypes/ |
NodeSet file | Opc.Ua.PlasticsRubber.Extrusion.GeneralTypes.NodeSet2.xml |
Model version | 1.01 |
Publication date | 1.4.2021 |
Latest change | 2.7.2021 |
SDK: loadModel | Success |
SDK: Code Generator | Success if some Nodes are excluded |
Simulation Server | Success |
Specification | OPC 40084-2 - UA CS for PlasticsRubber - Extrusion - Extrusion Line |
NamespaceUri | http://opcfoundation.org/UA/PlasticsRubber/Extrusion/ExtrusionLine/ |
NodeSet file | Opc.Ua.PlasticsRubber.Extrusion.ExtrusionLine.NodeSet2.xml |
Model version | 1.00.01 |
Publication date | 9.11.2020 |
Latest change | 8.4.2021 |
SDK: loadModel | Success |
SDK: Code Generator | Success if some Nodes are excluded |
Simulation Server | Success |
Specification | OPC 40084-3 - UA CS for PlasticsRubber - Extrusion - Extruder |
NamespaceUri | http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Extruder/ |
NodeSet file | Opc.Ua.PlasticsRubber.Extrusion.Extruder.NodeSet2.xml |
Model version | 1.00 |
Publication date | 1.6.2020 |
Latest change | 8.4.2021 |
SDK: loadModel | Success |
SDK: Code Generator | Success if some Nodes are excluded |
Simulation Server | Success |
Specification | OPC 40084-4 - UA CS for PlasticsRubber - Extrusion - Haul-off |
NamespaceUri | http://opcfoundation.org/UA/PlasticsRubber/Extrusion/HaulOff/ |
NodeSet file | Opc.Ua.PlasticsRubber.Extrusion.HaulOff.NodeSet2.xml |
Model version | 1.00 |
Publication date | 1.6.2020 |
Latest change | 8.4.2021 |
SDK: loadModel | Success |
SDK: Code Generator | Success |
Simulation Server | Success |
Specification | OPC 40084-5 - UA CS for PlasticsRubber - Extrusion - Melt Pump |
NamespaceUri | http://opcfoundation.org/UA/PlasticsRubber/Extrusion/MeltPump/ |
NodeSet file | Opc.Ua.PlasticsRubber.Extrusion.MeltPump.NodeSet2.xml |
Model version | 1.00 |
Publication date | 1.6.2020 |
Latest change | 8.4.2021 |
SDK: loadModel | Success |
SDK: Code Generator | Success |
Simulation Server | Success |
Specification | OPC 40084-6 - UA CS for PlasticsRubber - Extrusion - Filter |
NamespaceUri | http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Filter/ |
NodeSet file | Opc.Ua.PlasticsRubber.Extrusion.Filter.NodeSet2.xml |
Model version | 1.00 |
Publication date | 1.6.2020 |
Latest change | 8.4.2021 |
SDK: loadModel | Success |
SDK: Code Generator | Success |
Simulation Server | Success |
Specification | OPC 40084-7 - UA CS for PlasticsRubber - Extrusion - Die |
NamespaceUri | http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Die/ |
NodeSet file | Opc.Ua.PlasticsRubber.Extrusion.Die.NodeSet2.xml |
Model version | 1.00 |
Publication date | 1.6.2020 |
Latest change | 8.4.2021 |
SDK: loadModel | Success |
SDK: Code Generator | Success |
Simulation Server | Success |
Specification | OPC 40084-8 - UA CS for PlasticsRubber - Extrusion - Pelletizer |
NamespaceUri | http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Pelletizer/ |
NodeSet file | Opc.Ua.PlasticsRubber.Extrusion.Pelletizer.NodeSet2.xml |
Model version | 1.00 |
Publication date | 1.6.2020 |
Latest change | 8.4.2021 |
SDK: loadModel | Success |
SDK: Code Generator | Success |
Simulation Server | Success |
Specification | OPC 40084-9 - UA CS for PlasticsRubber - Extrusion - Cutter |
NamespaceUri | http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Cutter/ |
NodeSet file | Opc.Ua.PlasticsRubber.Extrusion.Cutter.NodeSet2.xml |
Model version | 1.00 |
Publication date | 1.6.2020 |
Latest change | 8.4.2021 |
SDK: loadModel | Success |
SDK: Code Generator | Success |
Simulation Server | Success |
Specification | OPC 40084-10 - UA CS for PlasticsRubber - Extrusion - Calibrator |
NamespaceUri | http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Calibrator/ |
NodeSet file | Opc.Ua.PlasticsRubber.Extrusion.Calibrator.NodeSet2.xml |
Model version | 1.00 |
Publication date | 1.6.2020 |
Latest change | 8.4.2021 |
SDK: loadModel | Success |
SDK: Code Generator | Success if some Nodes are excluded |
Simulation Server | Success |
Specification | OPC 40084-11 - UA CS for PlasticsRubber - Extrusion - Corrugator |
NamespaceUri | http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Corrugator/ |
NodeSet file | Opc.Ua.PlasticsRubber.Extrusion.Corrugator.NodeSet2.xml |
Model version | 1.00 |
Publication date | 1.6.2020 |
Latest change | 8.4.2021 |
SDK: loadModel | Success |
SDK: Code Generator | Success |
Simulation Server | Success |
Specification | OPC 40084-12 - UA CS for PlasticsRubber - Extrusion - Calender |
NamespaceUri | http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Calender/ |
NodeSet file | Opc.Ua.PlasticsRubber.Extrusion.Calender.NodeSet2.xml |
Model version | 1.00 |
Publication date | 1.4.2021 |
Latest change | 2.7.2021 |
SDK: loadModel | Success |
SDK: Code Generator | Success if some Nodes are excluded |
Simulation Server | Success |
Machine Vision
Specification | OPC 40100-1 - UA Companion Specification Part 1 for Machine Vision |
NamespaceUri | http://opcfoundation.org/UA/MachineVision |
NodeSet file | Opc.Ua.MachineVision.NodeSet2.xml |
Model version | 1.0.0 |
Publication date | 11.7.2019 |
Latest change | 28.8.2020 |
SDK: loadModel | Success |
SDK: Code Generator | Fail |
Simulation Server | Success with warnings |
Additional information
The Code Generator gets stuck in an endless loop when attempting to generate Java code from the NodeSet file.
Loading the NodeSet file with Simulation Server generates Bad_DecodingError warnings.
Weighing Technology
Specification | OPC 40200 - UA CS for Weighing Technology |
NamespaceUri | http://opcfoundation.org/UA/Scales |
NodeSet file | Opc.Ua.Scales.NodeSet2.xml |
Model version | 1.0 |
Publication date | 1.6.2020 |
Latest change | 27.6.2020 |
SDK: loadModel | Success |
SDK: Code Generator | Success |
Simulation Server | Success with warnings |
Additional information
Loading the NodeSet file with Simulation Server generates Bad_DecodingError warnings.
Pumps
Specification | OPC 40223 - UA Companion Specification for Pumps and Vacuum Pumps |
NamespaceUri | http://opcfoundation.org/UA/Pumps/ |
NodeSet file | Opc.Ua.Pumps.NodeSet2.xml |
Model version | 1.0.0 |
Publication date | 19.4.2021 |
Latest change | 2.7.2021 |
SDK: loadModel | Success |
SDK: Code Generator | Success |
Simulation Server | Success with warnings |
Additional information
Loading the NodeSet file with Simulation Server generates Bad_DecodingError warnings.
Compressed Air Systems
Specification | OPC 40250-1 - UA CS for CompressedAirSystems Part 1 - Main Control System |
NamespaceUri | http://opcfoundation.org/UA/CAS/ |
NodeSet file | Opc.Ua.CAS.NodeSet2.xml |
Model version | 1.00.1 |
Publication date | 13.7.2021 |
Latest change | 17.7.2021 |
SDK: loadModel | Success with warnings |
SDK: Code Generator | Success if the NodeSet file is fixed manually |
Simulation Server | Success with warnings |
Additional information
Variable Nodes "ns=1;i=6295" and "ns=1;i=7882" have same BrowsePath which will cause the Code Generator to generate unusable code. This can be fixed before generating code by opening Opc.Ua.CAS.NodeSet2.xml and changing the BrowseName of either of these two Variable Nodes such that they have different BrowsePaths. For the current version of the Nodeset file, the BrowseNames are on lines 4421 and 9054. For example, changing the latter BrowseName from "3:UIElement" to "3:UIElement2" will fix the issue.
Loading the NodeSet file with the SDK and Simulation Server generates warnings.
Flat Glass Processing
Specification | OPC 40301 - UA for Flat Glass Processing |
NamespaceUri | http://opcfoundation.org/UA/Glass/Flat/ |
NodeSet file | Opc.Ua.Glass.NodeSet2.xml |
Model version | 1.0.0 |
Publication date | 1.1.2022 |
Latest change | 19.10.2021 |
SDK: loadModel | Success |
SDK: Code Generator | Success if some Nodes are excluded |
Simulation Server | Success with warnings |
Additional information
Loading the NodeSet file with Simulation Server generates Bad_DecodingError warnings.
The publication date marked in the NodeSet XML file is 1.1.2022.
Woodworking
Specification | OPC 40550-1 - UA for Woodworking Part 1 - Vertical Interface |
NamespaceUri | http://opcfoundation.org/UA/Woodworking/ |
NodeSet file | Opc.Ua.Woodworking.NodeSet2.xml |
Model version | 1.00 |
Publication date | 3.10.2021 |
Latest change | 19.10.2021 |
SDK: loadModel | Success |
SDK: Code Generator | Fail |
Simulation Server | Success |
Additional information
WwMessageArgumentValueDataType has a Field Named Boolean, which isn’t supported by the CodeGenerator as that would have the same name Boolean java class.
Specification | OPC 40550-1 - UA for Woodworking Part 1 - Vertical Interface |
NamespaceUri | http://opcfoundation.org/UA/Eumabois/ |
NodeSet file | Opc.Ua.Eumabois.Nodeset2.xml |
Model version | 0.14 |
Publication date | 27.1.2021 |
Latest change | 19.10.2021 |
SDK: loadModel | Success |
SDK: Code Generator | Untested |
Simulation Server | Success |
Additional information
This NodeSet file extends the information model defined in http://opcfoundation.org/UA/Woodworking/. As the NodeSet file containing that information model is incompatible with the Code Generator, this NodeSet file could not be tested.
Tightening
Specification | OPC 40451-1 - UA CS for for Tightening Systems |
NamespaceUri | http://opcfoundation.org/UA/IJT/ |
NodeSet file | Opc.Ua.Ijt.Tightening.NodeSet2.xml |
Model version | 1.00.0 |
Publication date | 29.9.2021 |
Latest change | 13.10.2021 |
SDK: loadModel | Success with warnings |
SDK: Code Generator | Success if some Nodes are excluded |
Simulation Server | Success with warnings |
Additional information
Loading the NodeSet file with the SDK and Simulation Server generates warnings.
Machine Tool
Specification | OPC 40501-1 - UA CS for Machine Tools Part 1 - Monitoring and Job |
NamespaceUri | http://opcfoundation.org/UA/MachineTool/ |
NodeSet file | Opc.Ua.MachineTool.NodeSet2.xml |
Model version | 1.00.0 |
Publication date | 25.9.2020 |
Latest change | 26.9.2020 |
SDK: loadModel | Success |
SDK: Code Generator | Success if some Nodes are excluded |
Simulation Server | Success |
CNC Systems
Specification | OPC 40502 - UA for Computerized Numerical Control (CNC) Systems |
NamespaceUri | http://opcfoundation.org/UA/CNC |
NodeSet file | Opc.Ua.CNC.NodeSet.xml |
Model version | 1.0.0 |
Publication date | 19.6.2017 |
Latest change | 17.6.2020 |
SDK: loadModel | Success |
SDK: Code Generator | Success |
Simulation Server | Success with warnings |
Additional information
Loading the NodeSet file with Simulation Server generates Bad_DecodingError warnings.
Weihenstephan Standards
Specification | OPC 40600 - UA CS for Weihenstephan Standards |
NamespaceUri | http://opcfoundation.org/UA/Weihenstephan/ |
NodeSet file | Opc.Ua.Weihenstephan.NodeSet2.xml |
Model version | 1.00.0 |
Publication date | 12.7.2021 |
Latest change | 7.8.2021 |
SDK: loadModel | Success |
SDK: Code Generator | Success if some Nodes are excluded |
Simulation Server | Success |
Matti Siponen
Software Engineer
Email: matti.siponen@prosysopc.com
Expertise and responsibility areas: OPC UA product development and project work
Tags: OPC UA, Information Models, NodeSet, SDK for Java, Simulation Server
comments powered by DisqusAbout Prosys OPC Ltd
Prosys OPC is a leading provider of professional OPC software and services with over 20 years of experience in the field. OPC and OPC UA (Unified Architecture) are communications standards used especially by industrial and high-tech companies.
Newest blog posts
Why Do Standards Matter in Smart Manufacturing?
The blog post discusses the importance of standards in smart manufacturing, envisioning a future where auto-configurable systems in manufacturing rely on standardized data formats for seamless integration and reduced costs, with a focus on the OPC UA standard family as a key enabler.
OPC UA PubSub to Cloud via MQTT
Detailed overview of the demo presented at the OPC Foundation booth
SimServer How To #3: Simulate data changes on a server using an OPC UA client
A two-part step-by-step tutorial on how to write data changes on an OPC UA server using an OPC UA client.