UaModeler  1.6.5.472
Models

Each project has to contain at least one custom model. It is added or created when running the “New Project…” wizard. More models can be added later (see Projects).

Note
A model can depend on other models, but only of those with a lower namespace index.
Generate Namespace/Don’t Generate Namespace
Select/deselect the model for generating code. For each selected model node, code will be generated when clicking the blue gear wheel symbol in the tool bar.
Model Settings
This dialog can be used to modify any name part of the model (see below).
Update From File
It is possible to replace a model in a project by importing a model from a binary file or an XML file. UaModeler will warn you if a model has dependencies to other models of the project. You can choose to reload these models after import or to cancel the operation.
Compress Numeric NodeIds
This option allows you to reassign numerical identifiers to fill “gaps”, e.g. caused by deleted nodes. More information can be found below.
Set Model Color
Select the color in which the Nodes of this model are displayed in the Graphics View.
Publish Model
This dialog allows setting a version number and a publishing date for a model. This information is exposed in the NodeSet XML file and in the address space. Furthermore, some information that may be useful for clients or aggregating servers can be set. For more information, see Publish Model.
Export XML
Export the model to an XML file compliant with the schema of the OPC Foundation (http://opcfoundation.org/UA/2011/03/UANodeSet.xsd). The filename is <model name>.xml. It is saved to the same directory as the model file. An already existing file is overwritten without warning.
Export NodeIds
Export NodeIds to a csv file in the format also used for standard models provided by the OPC Foundation. It contains a unique name for the node, the numeric identifier, and the node class. The filename is <model name>.csv. It is saved to the same directory as the model file. An already existing file is overwritten without warning.
Lock Model
This option prevents changes to the model. No nodes can be added, nodes and references cannot be changed or deleted. It is not possible to compress numeric NodeIds.
Set model extensions
Opens a dialog to set Extension for a model. You can edit the Extensions that are enabled in the Edit Settings dialog.
Update Encoding Nodes
Opens a dialog to add or remove DataType dictionary nodes and Default JSON encoding nodes for structured DataTypes, see gui_models_update_encoding_nodes.
Check Consistency
Call the built-in consistency checks for custom models. For more information, see Consistency Check.

Model Settings

The Model Settings dialog allows changing the names specified in the New Project wizard or when adding a new model via the context menu of the Models Folder. Just like the Add New Model dialog, this dialog is divided into two parts. Model specific settings and template specific settings. See Add Model for a description of the settings.

If the file name is changed, a copy of the model will be saved and used from then on when confirming with “OK”. If the namespace URI is changed, the model will be saved.

Compress Numeric NodeIds

For various reasons, there may be “gaps” between the numeric NodeIds used in a model. First of all, UaModeler automatically assigns a not yet used numeric NodeId to a new node if none is specified by the user (see Set Default Starting NodeIds). A defined NodeId range is used for each node class. Thus, there are gaps between identifiers of different node classes. When a node is deleted, the identifier is not reused for another node, leaving a gap.

These gaps can be eliminated using Compress Numeric NodeIds… from the context menu of a model. The dialog contains a box for entering the starting identifier. When confirming with OK, all nodes having identifiers greater or equal than the specified number will receive new identifiers.

The result depends on the settings you choose. The simplest case is using “1” as starting identifier. The resulting identifiers will be consecutively numbered, starting with 1.

If you choose a higher number as starting identifier, and leave the box “Start at 1” unchecked, all identifiers lower than the specified one are not changed. The other ones will be consecutively numbered, starting with the specified number. If you do check “Start at 1”, UaModeler will reassign identifiers starting at 1, leaving identifiers lower than the specified one untouched but fill gaps in between. The following table shows examples for the different cases.

Node Name Original NodeId Identifier: 1
Start at 1
Identifier: 3
Don’t Start at 1
Identifier: 7
Start at 1
Identifier: 7
Don’t start at 1
Node1 3 1 3 3 3
Node2 6 2 4 6 6
Node3 7 3 5 1 7
Node4 9 4 6 2 8
Node5 101 5 7 4 9
Node6 102 6 8 5 10
Node7 103 7 9 7 11
Node8 104 8 10 8 12
Node9 105 9 11 9 13

Publish Model

This dialog allows you to set information that is used when instantiating the NamespaceMetadataType defined in Part 5 of the OPC UA Specification.

The field Browse Name is filled in beforehand with the namespace URI. When changing this information, keep in mind that, according to the OPC UA Specification, this name shall be derived from the represented namespace.

The namespace Version provides version information for the namespace. It is intended for display purposes and shall not be used to programmatically identify the latest version.

The namespace Publication Date provides the publication date of the namespace version. It can be used by clients to determine the latest version if different versions are provided by different servers. Uncheck the box “Use Current Time” to enter the date manually.

Static Nodes are identical for all attributes in all servers, including the value attribute. For type definition nodes, also the instance declarations shall be identical. That means that for static nodes the semantic is always the same. Namespaces with static nodes are for example namespaces defined by standard bodies like the OPC Foundation. This is important information for aggregating servers. If the namespace is dynamic and used in several servers, the aggregating server needs to distinguish the namespace for each aggregated server. The static nodes of a namespace only need to be handled once, even if it they are used by several aggregated servers.

The check boxes at Static NodeId Types can be used to specify which nodes in the namespace are static. All nodes having an identifier type that is checked shall be static nodes.

At Static Numeric NodeId Range, a list of numeric ranges used for numeric NodeIds of static nodes can be specified. Numeric ranges have to be specified in the format <LowerBound>:<UpperBound>. When entering more than one, numeric ranges have to be separated with a semicolon. A numeric range may consist of a single number. The screenshot below shows an example. If “Numeric” is checked at Static Node Id Types, the values entered here are ignored.

At Static String Node Id Pattern, a regular expression (as defined for the Like Operator defined in Part 4 of the OPC Specification) to filter for string NodeIds of static nodes can be specified. If “String” is checked at Static Node Id Types, the values entered here are ignored.

The information entered at Namespace Version and Namespace Publication Date are also used for the Models element in the UANodeSet XML file defined in Part 6 of the OPC UA Specification.

publish_model.png

Update Encoding nodes

This dialog allows you to add or remove DataType dictionary nodes and JSON encoding nodes. Please see Add JSON encoding nodes for new nodes and DataType dictionary nodes - General description for more detail.