Changelog
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 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.
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.
@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.
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 URI of the model and the BrowseName of the Node to the excludes elements of the Code Generator’s configuration file.
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.5.0-1291 and Prosys OPC UA Simulation Server version 5.0.4-284. 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 |
Industrial Automation |
http://opcfoundation.org/UA/IA/ |
Success |
Success |
Success |
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 Tool |
http://opcfoundation.org/UA/MachineTool/ |
Success |
Success with name clashes |
Success |
Machine Vision |
http://opcfoundation.org/UA/MachineVision |
Fail |
Fail |
Fail |
Machinery |
http://opcfoundation.org/UA/Machinery/ |
Success |
Success |
Success |
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 |
Success with name clashes after excluding Nodes |
Success |
http://opcfoundation.org/UA/PlasticsRubber/Extrusion/ExtrusionLine/ |
Success |
Success with name clashes |
Success |
http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Extruder/ |
Success |
Success with name clashes |
Success |
http://opcfoundation.org/UA/PlasticsRubber/Extrusion/HaulOff/ |
Success |
Success |
Success |
http://opcfoundation.org/UA/PlasticsRubber/Extrusion/MeltPump/ |
Success |
Success |
Success |
http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Filter/ |
Success |
Success |
Success |
http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Die/ |
Success |
Success |
Success |
http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Pelletizer/ |
Success |
Success |
Success |
http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Cutter/ |
Success |
Success |
Success |
http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Calibrator/ |
Success |
Success with name clashes |
Success |
http://opcfoundation.org/UA/PlasticsRubber/Extrusion/Corrugator/ |
Success |
Success |
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/ |
Success |
Success with name clashes after excluding Nodes |
Success |
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 |
Success |
Success |
Success with warnings |
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 |
Publication date |
8.1.2020 |
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 |
Publication date |
31.10.2019 |
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 |
Publication date |
2.6.2020 |
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 |
Publication date |
31.7.2013 |
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 |
Publication date |
18.6.2020 |
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 |
Publication date |
22.2.2016 |
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 |
Publication date |
Publication date 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 |
Publication date |
19.6.2017 |
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 |
Publication date |
12.7.2019 |
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 |
Publication date |
28.11.2017 |
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 |
Publication date |
4.7.2017 |
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 |
Publication date |
4.7.2017 |
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 |
Publication date |
Publication date 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 |
Publication date |
5.2.2018 |
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 |
Publication date |
5.2.2018 |
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 |
Publication date |
5.2.2018 |
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.
Industrial Automation
NamespaceUri |
http://opcfoundation.org/UA/IA/ |
Filename |
Opc.Ua.IA.NodeSet2.xml |
Model version |
1.00.0 |
Publication date |
31.8.2020 |
Latest change |
6.9.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 |
IO Link Devices and IO-Link Masters
NamespaceUri |
http://opcfoundation.org/UA/IOLink/ |
Filename |
Opc.Ua.IOLink.NodeSet2.xml |
Model version |
1.0 |
Publication date |
1.12.2018 |
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 |
Publication date |
1.12.2018 |
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 |
Publication date |
6.11.2013 |
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.
NamespaceUri |
http://opcfoundation.org/UA/MachineTool/ |
Filename |
Opc.Ua.MachineTool.NodeSet2.xml |
Model version |
1.00.0 |
Publication date |
25.9.2020 |
Latest change |
26.9.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 PrognosisListType and ToolListTypes Nodes that have a NodeVersion Property, which cause name clashes in the Java code generated by the Code Generator.
Machine Vision
NamespaceUri |
http://opcfoundation.org/UA/MachineVision |
Filename |
Opc.Ua.MachineVision.NodeSet2.xml |
Model version |
1.0.0 |
Publication date |
11.7.2019 |
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.
Machinery
NamespaceUri |
http://opcfoundation.org/UA/Machinery/ |
Filename |
Opc.Ua.Machinery.NodeSet2.xml |
Model version |
1.0.0 |
Publication date |
25.9.2020 |
Latest change |
26.9.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 |
MDIS
NamespaceUri |
http://opcfoundation.org/UA/MDIS |
Filename |
Opc.MDIS.NodeSet2.xml |
Model version |
1.20 |
Publication date |
3.10.2018 |
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 |
Publication date |
5.6.2020 |
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 |
Publication date |
28.5.2020 |
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 |
Publication date |
1.6.2020 |
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 |
Publication date |
1.6.2020 |
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 |
Publication date |
1.6.2020 |
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 |
Publication date |
1.6.2020 |
Latest change |
17.6.2020 |
SDK: loadModel |
Loading from the NodeSet file succeeded |
SDK: Code Generator |
Generating code based on the NodeSet file requires excluding Nodes and contains name clashes |
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. Excluding this Node enables generating Java code with name clashes.
NamespaceUri |
http://opcfoundation.org/UA/PlasticsRubber/Extrusion/ExtrusionLine/ |
Filename |
Opc.Ua.PlasticsRubber.Extrusion.ExtrusionLine.NodeSet2.xml |
Model version |
1.00 |
Publication date |
1.6.2020 |
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 |
Publication date |
1.6.2020 |
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
FeedersType 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/HaulOff/ |
Filename |
Opc.Ua.PlasticsRubber.Extrusion.HaulOff.NodeSet2.xml |
Model version |
1.00 |
Publication date |
1.6.2020 |
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/PlasticsRubber/Extrusion/MeltPump/ |
Filename |
Opc.Ua.PlasticsRubber.Extrusion.MeltPump.NodeSet2.xml |
Model version |
1.00 |
Publication date |
1.6.2020 |
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/PlasticsRubber/Extrusion/Filter/ |
Filename |
Opc.Ua.PlasticsRubber.Extrusion.Filter.NodeSet2.xml |
Model version |
1.00 |
Publication date |
1.6.2020 |
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/PlasticsRubber/Extrusion/Die/ |
Filename |
Opc.Ua.PlasticsRubber.Extrusion.Die.NodeSet2.xml |
Model version |
1.00 |
Publication date |
1.6.2020 |
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/PlasticsRubber/Extrusion/Pelletizer/ |
Filename |
Opc.Ua.PlasticsRubber.Extrusion.Pelletizer.NodeSet2.xml |
Model version |
1.00 |
Publication date |
1.6.2020 |
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/PlasticsRubber/Extrusion/Cutter/ |
Filename |
Opc.Ua.PlasticsRubber.Extrusion.Cutter.NodeSet2.xml |
Model version |
1.00 |
Publication date |
1.6.2020 |
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/PlasticsRubber/Extrusion/Calibrator/ |
Filename |
Opc.Ua.PlasticsRubber.Extrusion.Calibrator.NodeSet2.xml |
Model version |
1.00 |
Publication date |
1.6.2020 |
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
CalibrationZonesType 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/Corrugator/ |
Filename |
Opc.Ua.PlasticsRubber.Extrusion.Corrugator.NodeSet2.xml |
Model version |
1.00 |
Publication date |
1.6.2020 |
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 |
PLCopen
NamespaceUri |
http://PLCopen.org/OpcUa/IEC61131-3/ |
Filename |
Opc.Ua.Plc.NodeSet2.xml |
Model version |
1.00 |
Publication date |
24.3.2010 |
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 |
POWERLINK
NamespaceUri |
http://opcfoundation.org/UA/POWERLINK/ |
Filename |
Opc.Ua.POWERLINK.NodeSet2.xml |
Model version |
1.0.0 |
Publication date |
10.10.2017 |
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 |
Publication date |
4.2.2020 |
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 |
Publication date |
23.4.2020 |
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
The NodeSet file contains various Nodes with ValueRank -2, which is not supported by the Code Generator causing the code generation to be aborted.
PROFINET
NamespaceUri |
http://opcfoundation.org/UA/PROFINET/ |
Filename |
Opc.Ua.Pn.NodeSet2.xml |
Model version |
1.0.0 |
Publication date |
13.12.2019 |
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 |
Publication date |
6.5.2019 |
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 |
Publication date |
13.3.2017 |
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 |
Publication date |
11.10.2017 |
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 |
Publication date |
1.6.2020 |
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 with warnings |