Two types of licenses are supported.

TRIAL - this license allows access to all the functions of the OPC UA server with one limitation. The license has a limited validity period, usually 1 month.

PRODUCTION - this type of license has no restrictions on the validity period or on the available functions of the OPC UA server.

If the license is not installed or if the license is not valid, for example, an expired TRIAL license, then the OPC UA server will function for 1 hour after starting the process. After the hour has elapsed, the OPC UA server will return a BADLICENSENOTAVAILABLE or BADLICENSEEXPIRED error on requests to read and write data, except for system objects and system variables of OPC UA server. Users may use the period of 1 hour for initial familiarization with the functionality of the OPC UA server before requesting a TRIAL license.

Basic license parameters

LicenseType - license type. TRIAL or PRODUCTION.
DeviceType - type of the OPC UA server, corresponds to the type of the served device.
Instance - the name of the OPC UA server instance. Instances are explained in this article. This parameter is empty for default instances.
HID - unique Hardware ID key. It is generated according to the hardware parameters of the machine on which the OPC UA server is running. Parameters may include CPUID, MAC addresses, and other values.
IssuedTo - the organization for which the license is issued.
IssuedBy - who issued the license.
Issued - when the license was issued.
ValidTo - license validity period. Not used for PRODUCTION licenses.

License file

A license file is a text file containing license parameters and a digital signature. The following is an example of a license file:

sn:EBC39739-87C1-ED11-83FE-111D3AA8ED7D
type:Production
device:SIEMENS SINUMERIK TCP
instance:CNC.120
hid:DCC325EA30B2F1DDCF287625D4E5E9DC
issuedTo:BB41E094-28B4-E911-A96A-111D3A4416AB
issuedBy:Xtensive-Automation
issued:2023-03-13
sig:886156419216FE...

Please note that the name of the OPC UA server instance is included in the license parameters. Each instance of the OPC UA server requires a separate license.

Address space of the OPC UA server for license management

OPC UA servers support the “https://dpaxt.io/UA/license/” address space for license management. This address space contains several system nodes.

The variable “Objects/Server/Instance/Runtime” allows to read information about an instance in the form of an InstanceRuntimeType structure. An example of a variable value is given below:

{
    "DeviceType": "SIEMENS SINUMERIK TCP",
    "Instance": null,
    "HID": "7CA612911DCBE56F6741F65263F7ADA9",
    "HostPlatform": "Windows NT",
    "HostArchitecture": "x64",
    "HostVersion": "10.0.22621",
    "InstanceArchitecture": "x64",
    "InstanceVersion": "1.2.0.0",
    "InstanceRuntime": "default"
}

Users can use the DeviceType, Instance and HID parameters from the value of the “Objects/Server/Instance/Runtime” variable to generate a request for a TRIAL or PRODUCTION license.

The variable “Objects/Server/Instance/LicenseKey” allows to read the loaded license and its status. An example of a variable value is given below:

{
    "Status": "OK",
    "LicenseType": "Trial",
    "DeviceType": "SIEMENS SINUMERIK TCP",
    "Instance": null,
    "HID": "7CA612911DCBE56F6741F65263F7ADA9",
    "IssuedTo": "429DDE59-793D-E811-A95B-111D3A296DF2",
    "IssuedBy": "Xtensive-Automation",
    "Issued": "03/19/2023 00:00:00",
    "ValidTo": "04/18/2023 00:00:00"
}

Manual installation of the license

The license can be installed manually by copying the license file to the directory of the OPC UA server instance. For more information on instances and instance file locations, see here. After copying the license file, restart the OPC UA server, or the license will be read automatically within 5 minutes.

Remote license installation

Remote installation can be performed using the command line utility dpa.opcua.rs:

dpa.opcua.rs.exe target <OpcServerIp> install license <PathToLicenseFile>

To check license status:

dpa.opcua.rs.exe target <OpcServerIp>