« Back to all blog posts

Importing Information Models from OPC UA NodeSet files

01.09.2020


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

// Add MotionDeviceSystem
MotionDeviceSystemType MDS = myNodeManager.createInstance(MotionDeviceSystemType.class, "MDS1");
DeviceSetFolder.addReference(MDS, Identifiers.Organizes, false);

// Add MotionDevice to MotionDeviceSystem
TypeDefinitionBasedNodeBuilderConfiguration.Builder conf = TypeDefinitionBasedNodeBuilderConfiguration.builder();
conf.addOptional(UaQualifiedName.from("http://opcfoundation.org/UA/Robotics/", "OnPath"));
conf.addOptional(UaQualifiedName.from("http://opcfoundation.org/UA/Robotics/", "InControl"));
conf.addOptional(UaQualifiedName.from("http://opcfoundation.org/UA/Robotics/", "FlangeLoad"));
conf.addOptional(UaQualifiedName.from("http://opcfoundation.org/UA/Robotics/", "AdditionalComponents"));
conf.addOptional(UaQualifiedName.from("http://opcfoundation.org/UA/Robotics/", "Inertia"));
conf.addOptional(UaQualifiedName.from("http://opcfoundation.org/UA/Robotics/", "CenterOfMass"));
myNodeManager.setNodeBuilderConfiguration(conf.build());
MotionDeviceType MD = myNodeManager.createInstance(MotionDeviceType.class, "MD1");
FolderType MotionDevicesFolder = MDS.getMotionDevicesNode();
MotionDevicesFolder.addComponent(MD);
MD.setManufacturer(new LocalizedText("MD1 Manufacturer"));
MD.setModel(new LocalizedText("MD1 Model"));
MD.setMotionDeviceCategory(MotionDeviceCategoryEnumeration.ARTICULATED_ROBOT);
MD.setProductCode("MD1 Product Code");
MD.setSerialNumber("MD1 Serial Number");

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.

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.

@Mandatory
@Override
void setSetpointTemperature(Double value) {
	UaVariable node = getSetpointTemperatureNode();
	if (node == null) {
		throw new RuntimeException("Setting SetpointTemperature failed: does not exist (Optional Nodes must be configured in NodeBuilder)");
	}
	try {
		node.setValue(value);
	} catch(StatusException e) {
		throw new RuntimeException("Setting SetpointTemperature failed unexpectedly", e);
	}
}
  
@Override
public void setSetpointTemperature(Double setpoint) throws StatusException {
	doSetSetpointTemperature(ServiceContext.INTERNAL_OPERATION_CONTEXT, setpoint);
}

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.

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 with Prosys OPC UA SDK for Java version 4.4.0-1240 and Prosys OPC UA Simulation Server version 5.0.2-242. 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 of the information model specified in a NodeSet file is set manually and is not incremented every time the model is updated. Therefore, two NodeSet files representing an information model might have different contents despite them sharing the same version number!

Test results

The test results for the tested NodeSet files are summarized below.

Information Model Name NamespaceUri SDK: loadModel SDK: Code Generator Simulation Server
Global Discovery Server http://opcfoundation.org/UA/GDS/ Success Success Success
Safety http://opcfoundation.org/UA/Safety Success Success Success
Devices http://opcfoundation.org/UA/DI/ Success Success Success
Analyzer Devices http://opcfoundation.org/UA/ADI/ Success Success Success
AutoID http://opcfoundation.org/UA/AutoID/ Success Success with name clashes Success
AutomationML http://opcfoundation.org/UA/AML/ Success Success Success
http://opcfoundation.org/UA/AMLLibs/ Success with warnings Fail Success with warnings
CNC Systems http://opcfoundation.org/UA/CNC Success Success Success with warnings
Commercial Kitchen Equipment http://opcfoundation.org/UA/CommercialKitchenEquipment/ Success Success Success
CSPPlus for Machine http://opcfoundation.org/UA/CSPPlusForMachine/ Fail Fail Fail
FDI http://fdi-cooperation.com/OPCUA/FDI5/ Success Success Success
http://fdi-cooperation.com/OPCUA/FDI7/ Success Success Success
FDT http://opcfoundation.org/UA/schemas/FDT/1.0/ Success Success with name clashes Success
IEC61850 http://opcfoundation.org/UA/IEC61850-7-3 Fail Fail Fail
http://opcfoundation.org/UA/IEC61850-6 Untested Untested Untested
http://opcfoundation.org/UA/IEC61850-7-4 Untested Untested Untested
IO Link Devices and IO-Link Masters http://opcfoundation.org/UA/IOLink/ Success Success with name clashes Success
http://opcfoundation.org/UA/IOLink/IODD/ Success Success Success
ISA-95 http://www.OPCFoundation.org/UA/2013/01/ISA95 Success Fail Success
Machine Vision http://opcfoundation.org/UA/MachineVision Fail Fail Fail
MDIS http://opcfoundation.org/UA/MDIS Fail Fail Fail
MTConnect http://opcfoundation.org/UA/MTConnect/v2/ Fail Fail Fail
PackML http://opcfoundation.org/UA/PackML/ Success Success Success with warnings
Plastics and Rubber Machinery http://opcfoundation.org/UA/PlasticsRubber/GeneralTypes/ Success Success with name clashes Success
http://opcfoundation.org/UA/PlasticsRubber/IMM2MES/ Success Success with name clashes Success
http://opcfoundation.org/UA/PlasticsRubber/TCD/ Success Success with name clashes Success
http://opcfoundation.org/UA/PlasticsRubber/Extrusion/GeneralTypes/ Success Fail Success
http://opcfoundation.org/UA/PlasticsRubber/Extrusion/ExtrusionLine/ Success Success with name clashes Success
http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Extruder/ Success Untested Success
http://opcfoundation.org/UA/PlasticsRubber/Extrusion/HaulOff/ Success Untested Success
http://opcfoundation.org/UA/PlasticsRubber/Extrusion/MeltPump/ Success Untested Success
http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Filter/ Success Untested Success
http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Die/ Success Untested Success
http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Pelletizer/ Success Untested Success
http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Cutter/ Success Untested Success
http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Calibrator/ Success Untested Success
http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Corrugator/ Success Untested Success
PLCopen http://PLCopen.org/OpcUa/IEC61131-3/ Success Success Success
POWERLINK http://opcfoundation.org/UA/POWERLINK/ Success Success Success
Process Automation Devices http://opcfoundation.org/UA/Dictionary/IRDI Success Success Success
http://opcfoundation.org/UA/PADIM/ Fail Fail Fail
PROFINET http://opcfoundation.org/UA/PROFINET/ Success with warnings Success with name clashes Success with warnings
Robotics http://opcfoundation.org/UA/Robotics/ Success Success Success
Sercos Devices http://sercos.org/UA/ Success Success Success
Tobacco Machines http://opcfoundation.org/UA/TMC/ Success Success with name clashes Success with warnings
Weighing Technology http://opcfoundation.org/UA/Scales Fail Fail Fail


The detailed test results for the tested NodeSet files are presented below.

Global Discovery Server

NamespaceUri http://opcfoundation.org/UA/GDS/
Filename Opc.Ua.Gds.NodeSet2.xml
Model version 1.04.4
Latest change 28.8.2020
SDK: loadModel Loading from the NodeSet file succeeded
SDK: Code Generator Generating code based on the NodeSet file succeeded
Simulation Server Loading from the NodeSet file succeeded


Safety

NamespaceUri http://opcfoundation.org/UA/Safety
Filename Opc.Ua.Safety.NodeSet2.xml
Model version 1.0
Latest change 17.7.2020
SDK: loadModel Loading from the NodeSet file succeeded
SDK: Code Generator Generating code based on the NodeSet file succeeded
Simulation Server Loading from the NodeSet file succeeded


Devices

NamespaceUri http://opcfoundation.org/UA/DI/
Filename Opc.Ua.Di.NodeSet2.xml
Model version 1.02.2
Latest change 17.6.2020
SDK: loadModel Loading from the NodeSet file succeeded
SDK: Code Generator Generating code based on the NodeSet file succeeded
Simulation Server Loading from the NodeSet file succeeded


Analyzer Devices

NamespaceUri http://opcfoundation.org/UA/ADI/
Filename Opc.Ua.Adi.NodeSet2.xml
Model version 1.01
Latest change 28.8.2020
SDK: loadModel Loading from the NodeSet file succeeded
SDK: Code Generator Generating code based on the NodeSet file succeeded
Simulation Server Loading from the NodeSet file succeeded


AutoID

NamespaceUri http://opcfoundation.org/UA/AutoID/
Filename Opc.Ua.AutoID.NodeSet2.xml
Model version 1.01
Latest change 27.6.2020
SDK: loadModel Loading from the NodeSet file succeeded
SDK: Code Generator Generated code based on the NodeSet file contains name clashes
Simulation Server Loading from the NodeSet file succeeded

Additional information
OpticalVerifierDeviceType has Scan Method with OutputArguments that have wrong WGS84Coordinate DataType instead of correct OpticalScanResult DataType, which causes the Code Generator to generate code with name clashes.

AutomationML

NamespaceUri http://opcfoundation.org/UA/AML/
Filename Opc.Ua.AMLBaseTypes.NodeSet2.xml
Model version 1.00
Latest change 28.6.2020
SDK: loadModel Loading from the NodeSet file succeeded
SDK: Code Generator Generating code based on the NodeSet file succeeded
Simulation Server Loading from the NodeSet file succeeded


NamespaceUri http://opcfoundation.org/UA/AMLLibs/
Filename Opc.Ua.AMLLibraries.NodeSet2.xml
Model version Version number is missing in the NodeSet file
Latest change 17.6.2020
SDK: loadModel Loading from the NodeSet file succeeded with warnings
SDK: Code Generator Generating code based on the NodeSet file failed
Simulation Server Loading from the NodeSet file succeeded with warnings

Additional information
The values of some Nodes in the NodeSet file could not be loaded when loading the information model from the NodeSet file with the SDK and 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.

CNC Systems

NamespaceUri http://opcfoundation.org/UA/CNC
Filename Opc.Ua.CNC.NodeSet.xml
Model version 1.0.0
Latest change 17.6.2020
SDK: loadModel Loading from the NodeSet file succeeded
SDK: Code Generator Generating code based on the NodeSet file succeeded
Simulation Server Loading from the NodeSet file succeeded with warnings

Additional information
Loading the NodeSet file with Simulation Server generates Bad_DecodingError warnings.

Commercial Kitchen Equipment

NamespaceUri http://opcfoundation.org/UA/CommercialKitchenEquipment/
Filename Opc.Ua.CommercialKitchenEquipment.NodeSet2.xml
Model version 1.0
Latest change 28.6.2020
SDK: loadModel Loading from the NodeSet file succeeded
SDK: Code Generator Generating code based on the NodeSet file succeeded
Simulation Server Loading from the NodeSet file succeeded


CSPPlus for Machine

NamespaceUri http://opcfoundation.org/UA/CSPPlusForMachine/
Filename Opc.Ua.CSPPlusForMachine.NodeSet2.xml
Model version 1.00
Latest change 27.6.2020
SDK: loadModel Loading from the NodeSet file failed
SDK: Code Generator Generating code based on the NodeSet file failed
Simulation Server Loading from the NodeSet file failed

Additional information
The NodeSet file is missing alias declarations for IdType and NumericRange.

FDI

NamespaceUri http://fdi-cooperation.com/OPCUA/FDI5/
Filename Opc.Ua.Fdi5.NodeSet2.xml
Model version 1.1
Latest change 17.6.2020
SDK: loadModel Loading from the NodeSet file succeeded
SDK: Code Generator Generating code based on the NodeSet file succeeded
Simulation Server Loading from the NodeSet file succeeded


NamespaceUri http://fdi-cooperation.com/OPCUA/FDI7/
Filename Opc.Ua.Fdi7.NodeSet2.xml
Model version Version number is missing in the NodeSet file
Latest change 17.6.2020
SDK: loadModel Loading from the NodeSet file succeeded
SDK: Code Generator Generating code based on the NodeSet file succeeded
Simulation Server Loading from the NodeSet file succeeded


FDT

NamespaceUri http://opcfoundation.org/UA/schemas/FDT/1.0/
Filename Opc.Ua.FDT.NodeSet2.xml
Model version Version number is missing in the NodeSet file
Latest change 17.6.2020
SDK: loadModel Loading from the NodeSet file succeeded
SDK: Code Generator Generated code based on the NodeSet file contains name clashes
Simulation Server Loading from the NodeSet file succeeded

Additional information
FdtDeviceType is a subtype of DeviceType and has a DeviceHealth Property, which causes a name clash with DeviceHealth Variable of DeviceType.

IEC61850

NamespaceUri http://opcfoundation.org/UA/IEC61850-7-3
Filename Opc.Ua.IEC61850-7-3.NodeSet2.xml
Model version 2.0
Latest change 28.6.2020
SDK: loadModel Loading from the NodeSet file failed
SDK: Code Generator Generating code based on the NodeSet file failed
Simulation Server Loading from the NodeSet file failed

Additional information
The NodeSet file contains enumeration values that are not supported by the SDK or the Code Generator, including “1-of-n-control”, “°C” and empty value.

NamespaceUri http://opcfoundation.org/UA/IEC61850-6
Filename Opc.Ua.IEC61850-6.NodeSet2.xml
Model version 2.0
Latest change 28.6.2020
SDK: loadModel The NodeFile could not be tested
SDK: Code Generator The NodeFile could not be tested
Simulation Server The NodeFile could not be tested

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 SDK and the Code Generator, this NodeSet file could not be tested.

NamespaceUri http://opcfoundation.org/UA/IEC61850-7-4
Filename Opc.Ua.IEC61850-7-4.NodeSet2.xml
Model version 2.0
Latest change 28.6.2020
SDK: loadModel The NodeFile could not be tested
SDK: Code Generator The NodeFile could not be tested
Simulation Server The NodeFile could not be tested

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 SDK and the Code Generator, this NodeSet file could not be tested.

NamespaceUri http://opcfoundation.org/UA/IOLink/
Filename Opc.Ua.IOLink.NodeSet2.xml
Model version 1.0
Latest change 28.8.2020
SDK: loadModel Loading from the NodeSet file succeeded
SDK: Code Generator Generated code based on the NodeSet file contains name clashes
Simulation Server Loading from the NodeSet file succeeded

Additional information
IOLinkPortType/Device/General/MethodSet has MethodIdentifier and <MethodIdentifier> Methods and DeviceVariantType has Description Property, which cause name clashes in the Java code generated by the Code Generator.

NamespaceUri http://opcfoundation.org/UA/IOLink/IODD/
Filename Opc.Ua.IOLinkIODD.NodeSet2.xml
Model version 1.0
Latest change 17.6.2020
SDK: loadModel Loading from the NodeSet file succeeded
SDK: Code Generator Generating code based on the NodeSet file succeeded
Simulation Server Loading from the NodeSet file succeeded


ISA-95

NamespaceUri http://www.OPCFoundation.org/UA/2013/01/ISA95
Filename Opc.ISA95.NodeSet2.xml
Model version 1.00
Latest change 28.6.2020
SDK: loadModel Loading from the NodeSet file succeeded
SDK: Code Generator Generating code based on the NodeSet file failed
Simulation Server Loading from the NodeSet file succeeded

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.

Machine Vision

NamespaceUri http://opcfoundation.org/UA/MachineVision
Filename Opc.Ua.MachineVision.NodeSet2.xml
Model version 1.0.0
Latest change 28.8.2020
SDK: loadModel Loading from the NodeSet file failed
SDK: Code Generator Generating code based on the NodeSet file failed
Simulation Server Loading from the NodeSet file failed

Additional information
There are errors in ResultDataType (ns=1;i=3006) DataType Node and ResultDataType (ns=1;i=6076) and ResultDataType (ns=1;i=6077) Variable Nodes that cause Null Pointer Exceptions when loading the information model from the NodeSet file with the SDK and Simulation Server.
The Code Generator gets stuck in an endless loop when attempting to generate Java code from the NodeSet file.

MDIS

NamespaceUri http://opcfoundation.org/UA/MDIS
Filename Opc.MDIS.NodeSet2.xml
Model version 1.20
Latest change 28.6.2020
SDK: loadModel Loading from the NodeSet file failed
SDK: Code Generator Generating code based on the NodeSet file failed
Simulation Server Loading from the NodeSet file failed

Additional information
MDISVersionVariableType and other Nodes target Nodes of BaseDataVariableType with HasProperty References, which causes IllegalArgumentExceptions when loading the information model from the NodeSet file with the SDK and Simulation Server.
MDISChokeObjectType has CalculatedPosition Variable and SetCalculatedPosition Method, which cause a name clash in the Java code generated by the Code Generator, although resolving this name clash won’t fix problems related to targeting BaseDataVariableType Nodes with HasProperty References in the generated code.

MTConnect

NamespaceUri http://opcfoundation.org/UA/MTConnect/v2/
Filename Opc.Ua.MTConnect.NodeSet2.xml
Model version 2.00.01
Latest change 28.8.2020
SDK: loadModel Loading from the NodeSet file failed
SDK: Code Generator Generating code based on the NodeSet file failed
Simulation Server Loading from the NodeSet file failed

Additional information
Attempting to load the information model with the SDK and Simulation Server from the NodeSet file causes a Null Pointer Exception.
The NodeSet file uses $ in description elements, which isn’t supported by the Code Generator causing it to abort code generation.

PackML

NamespaceUri http://opcfoundation.org/UA/PackML/
Filename Opc.Ua.PackML.NodeSet2.xml
Model version 1.1.0
Latest change 28.8.2020
SDK: loadModel Loading from the NodeSet file succeeded
SDK: Code Generator Generating code based on the NodeSet file succeeded
Simulation Server Loading from the NodeSet file succeeded with warnings

Additional information
Loading the NodeSet file with Simulation Server generates Bad_DecodingError warnings.

Plastics and Rubber Machinery

NamespaceUri http://opcfoundation.org/UA/PlasticsRubber/GeneralTypes/
Filename Opc.Ua.PlasticsRubber.GeneralTypes.NodeSet2.xml
Model version 1.02
Latest change 17.6.2020
SDK: loadModel Loading from the NodeSet file succeeded
SDK: Code Generator Generated code based on the NodeSet file contains name clashes
Simulation Server Loading from the NodeSet file succeeded

Additional information
The NodeSet file contains various Nodes that have a NodeVersion Property, RequestProductionDatasetWriteEventType has a Components Property, MouldType has a Description Property and TemperatureZoneCycleParametersType has ActualTemperature Variable with two EngineeringUnits Properties. While none of these are modeling errors, they cause name clashes in the Java code generated by the Code Generator.

NamespaceUri http://opcfoundation.org/UA/PlasticsRubber/IMM2MES/
Filename Opc.Ua.PlasticsRubber.IMM2MES.NodeSet2.xml
Model version 1.01
Latest change 17.6.2020
SDK: loadModel Loading from the NodeSet file succeeded
SDK: Code Generator Generated code based on the NodeSet file contains name clashes
Simulation Server Loading from the NodeSet file succeeded

Additional information
InjectionUnitsType has a Property with BrowseName NodeVersion, which causes a name clash in the Java code generated by the Code Generator.

NamespaceUri http://opcfoundation.org/UA/PlasticsRubber/TCD/
Filename Opc.Ua.PlasticsRubber.TCD.NodeSet2.xml
Model version 1.01
Latest change 17.6.2020
SDK: loadModel Loading from the NodeSet file succeeded
SDK: Code Generator Generated code based on the NodeSet file contains name clashes
Simulation Server Loading from the NodeSet file succeeded

Additional information
ExternalChannelsType has a property with BrowseName NodeVersion, which causes a name clash in the Java code generated by the Code Generator.

NamespaceUri http://opcfoundation.org/UA/PlasticsRubber/Extrusion/GeneralTypes/
Filename Opc.Ua.PlasticsRubber.Extrusion.GeneralTypes.NodeSet2.xml
Model version 1.00
Latest change 17.6.2020
SDK: loadModel Loading from the NodeSet file succeeded
SDK: Code Generator Generating code based on the NodeSet file failed
Simulation Server Loading from the NodeSet file succeeded

Additional information
ExtrusionDeviceType has Target Variable with ValueRank -3, which is not supported by the Code Generator causing the code generation to be aborted.

NamespaceUri http://opcfoundation.org/UA/PlasticsRubber/Extrusion/ExtrusionLine/
Filename Opc.Ua.PlasticsRubber.Extrusion.ExtrusionLine.NodeSet2.xml
Model version 1.00
Latest change 17.6.2020
SDK: loadModel Loading from the NodeSet file succeeded
SDK: Code Generator Generated code based on the NodeSet file contains name clashes
Simulation Server Loading from the NodeSet file succeeded

Additional information
JobGroupsType has a Property with BrowseName NodeVersion, JobGroupType has a Properties with BrowseNames Description and NodeVersion and JobType has a Property with BrowseName Description, which cause name clashes in the Java code generated by the Code Generator.

NamespaceUri http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Extruder/
Filename Opc.Ua.PlasticsRubber.Extrusion.Extruder.NodeSet2.xml
Model version 1.00
Latest change 17.6.2020
SDK: loadModel Loading from the NodeSet file succeeded
SDK: Code Generator The NodeFile could not be tested
Simulation Server Loading from the NodeSet file succeeded

Additional information
This NodeSet file extends the information model defined in http://opcfoundation.org/UA/PlasticsRubber/Extrusion/GeneralTypes/. As the NodeSet file containing that information model is incompatible with the Code Generator, this NodeSet file could not be tested.

NamespaceUri http://opcfoundation.org/UA/PlasticsRubber/Extrusion/HaulOff/
Filename Opc.Ua.PlasticsRubber.Extrusion.HaulOff.NodeSet2.xml
Model version 1.00
Latest change 17.6.2020
SDK: loadModel Loading from the NodeSet file succeeded
SDK: Code Generator The NodeFile could not be tested
Simulation Server Loading from the NodeSet file succeeded

Additional information
This NodeSet file extends the information model defined in http://opcfoundation.org/UA/PlasticsRubber/Extrusion/GeneralTypes/. As the NodeSet file containing that information model is incompatible with the Code Generator, this NodeSet file could not be tested.

NamespaceUri http://opcfoundation.org/UA/PlasticsRubber/Extrusion/MeltPump/
Filename Opc.Ua.PlasticsRubber.Extrusion.MeltPump.NodeSet2.xml
Model version 1.00
Latest change 17.6.2020
SDK: loadModel Loading from the NodeSet file succeeded
SDK: Code Generator The NodeFile could not be tested
Simulation Server Loading from the NodeSet file succeeded

Additional information
This NodeSet file extends the information model defined in http://opcfoundation.org/UA/PlasticsRubber/Extrusion/GeneralTypes/. As the NodeSet file containing that information model is incompatible with the Code Generator, this NodeSet file could not be tested.

NamespaceUri http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Filter/
Filename Opc.Ua.PlasticsRubber.Extrusion.Filter.NodeSet2.xml
Model version 1.00
Latest change 17.6.2020
SDK: loadModel Loading from the NodeSet file succeeded
SDK: Code Generator The NodeFile could not be tested
Simulation Server Loading from the NodeSet file succeeded

Additional information
This NodeSet file extends the information model defined in http://opcfoundation.org/UA/PlasticsRubber/Extrusion/GeneralTypes/. As the NodeSet file containing that information model is incompatible with the Code Generator, this NodeSet file could not be tested.

NamespaceUri http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Die/
Filename Opc.Ua.PlasticsRubber.Extrusion.Die.NodeSet2.xml
Model version 1.00
Latest change 17.6.2020
SDK: loadModel Loading from the NodeSet file succeeded
SDK: Code Generator The NodeFile could not be tested
Simulation Server Loading from the NodeSet file succeeded

Additional information
This NodeSet file extends the information model defined in http://opcfoundation.org/UA/PlasticsRubber/Extrusion/GeneralTypes/. As the NodeSet file containing that information model is incompatible with the Code Generator, this NodeSet file could not be tested.

NamespaceUri http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Pelletizer/
Filename Opc.Ua.PlasticsRubber.Extrusion.Pelletizer.NodeSet2.xml
Model version 1.00
Latest change 17.6.2020
SDK: loadModel Loading from the NodeSet file succeeded
SDK: Code Generator The NodeFile could not be tested
Simulation Server Loading from the NodeSet file succeeded

Additional information
This NodeSet file extends the information model defined in http://opcfoundation.org/UA/PlasticsRubber/Extrusion/GeneralTypes/. As the NodeSet file containing that information model is incompatible with the Code Generator, this NodeSet file could not be tested.

NamespaceUri http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Cutter/
Filename Opc.Ua.PlasticsRubber.Extrusion.Cutter.NodeSet2.xml
Model version 1.00
Latest change 17.6.2020
SDK: loadModel Loading from the NodeSet file succeeded
SDK: Code Generator The NodeFile could not be tested
Simulation Server Loading from the NodeSet file succeeded

Additional information
This NodeSet file extends the information model defined in http://opcfoundation.org/UA/PlasticsRubber/Extrusion/GeneralTypes/. As the NodeSet file containing that information model is incompatible with the Code Generator, this NodeSet file could not be tested.

NamespaceUri http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Calibrator/
Filename Opc.Ua.PlasticsRubber.Extrusion.Calibrator.NodeSet2.xml
Model version 1.00
Latest change 17.6.2020
SDK: loadModel Loading from the NodeSet file succeeded
SDK: Code Generator The NodeFile could not be tested
Simulation Server Loading from the NodeSet file succeeded

Additional information
This NodeSet file extends the information model defined in http://opcfoundation.org/UA/PlasticsRubber/Extrusion/GeneralTypes/. As the NodeSet file containing that information model is incompatible with the Code Generator, this NodeSet file could not be tested.

NamespaceUri http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Corrugator/
Filename Opc.Ua.PlasticsRubber.Extrusion.Corrugator.NodeSet2.xml
Model version 1.00
Latest change 17.6.2020
SDK: loadModel Loading from the NodeSet file succeeded
SDK: Code Generator The NodeFile could not be tested
Simulation Server Loading from the NodeSet file succeeded

Additional information
This NodeSet file extends the information model defined in http://opcfoundation.org/UA/PlasticsRubber/Extrusion/GeneralTypes/. As the NodeSet file containing that information model is incompatible with the Code Generator, this NodeSet file could not be tested.

PLCopen

NamespaceUri http://PLCopen.org/OpcUa/IEC61131-3/
Filename Opc.Ua.Plc.NodeSet2.xml
Model version 1.00
Latest change 17.6.2020
SDK: loadModel Loading from the NodeSet file succeeded
SDK: Code Generator Generating code based on the NodeSet file succeeded
Simulation Server Loading from the NodeSet file succeeded


NamespaceUri http://opcfoundation.org/UA/POWERLINK/
Filename Opc.Ua.POWERLINK.NodeSet2.xml
Model version 1.0.0
Latest change 17.6.2020
SDK: loadModel Loading from the NodeSet file succeeded
SDK: Code Generator Generating code based on the NodeSet file succeeded
Simulation Server Loading from the NodeSet file succeeded


Process Automation Devices

NamespaceUri http://opcfoundation.org/UA/Dictionary/IRDI
Filename Opc.Ua.IRDI.NodeSet2.xml
Model version 1.00
Latest change 17.6.2020
SDK: loadModel Loading from the NodeSet file succeeded
SDK: Code Generator Generating code based on the NodeSet file succeeded
Simulation Server Loading from the NodeSet file succeeded


NamespaceUri http://opcfoundation.org/UA/PADIM/
Filename Opc.Ua.PADIM.NodeSet2.xml
Model version 1.00
Latest change 17.6.2020
SDK: loadModel Loading from the NodeSet file failed
SDK: Code Generator Generating code based on the NodeSet file failed
Simulation Server Loading from the NodeSet file failed

Additional information
The NodeSet file contains various Nodes with TypeDefinition MultiStateDictionaryEntryDiscreteType, which isn’t available in the version of the standard information model used by the SDK, the Code Generator and Simulation Server.

PROFINET

NamespaceUri http://opcfoundation.org/UA/PROFINET/
Filename Opc.Ua.Pn.NodeSet2.xml
Model version 1.0.0
Latest change 23.6.2020
SDK: loadModel Loading from the NodeSet file succeeded with warnings
SDK: Code Generator Generated code based on the NodeSet file contains name clashes
Simulation Server Loading from the NodeSet file succeeded with warnings

Additional information
The values of some Nodes in the NodeSet file 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.
IPnInterfaceType has NameOfStation Variable and SetNameOfStation Method and PnIdentificationType has Descriptor Variable and SetDescriptor Method, which cause name clashes in the Jave code generated by the Code Generator.

Robotics

NamespaceUri http://opcfoundation.org/UA/Robotics/
Filename Opc.Ua.Robotics.NodeSet2.xml
Model version 1.0.0
Latest change 28.8.2020
SDK: loadModel Loading from the NodeSet file succeeded
SDK: Code Generator Generating code based on the NodeSet file succeeded
Simulation Server Loading from the NodeSet file succeeded


Sercos Devices

NamespaceUri http://sercos.org/UA/
Filename Sercos.NodeSet2.xml
Model version 1.00
Latest change 27.6.2020
SDK: loadModel Loading from the NodeSet file succeeded
SDK: Code Generator Generating code based on the NodeSet file succeeded
Simulation Server Loading from the NodeSet file succeeded


Tobacco Machines

NamespaceUri http://opcfoundation.org/UA/TMC/
Filename Opc.Ua.TMC.NodeSet2.xml
Model version 1.0
Latest change 17.6.2020
SDK: loadModel Loading from the NodeSet file succeeded
SDK: Code Generator Generated code based on the NodeSet file contains name clashes
Simulation Server Loading from the NodeSet file succeeded with warnings

Additional information
Loading the NodeSet file with Simulation Server generates Bad_DecodingError warnings.
ControlsHWType has IOImage Variable and GetIOImage Method, DefectDetectionSensorType has Description and DisplayName Variables and DetectionMode Variable and SetDetectionMode Method, MachineModuleConfigurationType has RootCauseGroupList, RootCauseList and StopReasonList Variables and GetRootCauseGroupList, GetRootCauseList and GetStopReasonList Methods, MachineModuleLiveStatusType has ControlMode and IdleEnergySavingMode Variables and SetControlMode and SetIdleEnergySavingMode Methods, MaterialRejectionTrapType has Description and DisplayName Variables and RejectionMode Variable and SetRejectionMode Method and MachineModuleType/MaterialRejectionTraps/UIInfo/UIResources has two RejectionMode Variable, which cause name clashes in the Jave code generated by the Code Generator.

Weighing Technology

NamespaceUri http://opcfoundation.org/UA/Scales
Filename Opc.Ua.Scales.NodeSet2.xml
Model version 1.0
Latest change 27.6.2020
SDK: loadModel Loading from the NodeSet file failed
SDK: Code Generator Generating code based on the NodeSet file failed
Simulation Server Loading from the NodeSet file failed

Additional information
CurrencyUnit Node’s DataType is CurrencyUnitType, which is not available in the version of the standard information model used by the SDK, the Code Generator or Simulation Server.

Matti Siponen

Matti Siponen

Software Engineer

Email: matti.siponen@prosysopc.com

Expertise and responsibility areas: OPC UA product development and project work

Tags: OPC UA, Information modeling, NodeSet

comments powered by Disqus

About Prosys

Prosys is a leading provider of professional OPC software and services with over 10 years of experience in the field. OPC and OPC UA (Unified Architecture) are communications standards used especially by industrial and high-tech companies.

Read more about us »

Newest blog posts

Importing Information Models from OPC UA NodeSet files

Importing Information Models from OPC UA NodeSet files with Prosys OPC UA SDK for Java and Prosys OPC UA Simulation Server

HaToDb - A demonstration on storing historical node data to a database

Using our Prosys OPC UA SDK for Java to gather historical data.

OPC UA Invalid Server Nonces Vulnerability

Security vulnerability in the OPC UA Java Stack.

View all blog posts »