OPC UA Application URI Derivation: Difference between revisions

From OPC Labs Knowledge Base
No edit summary
No edit summary
Line 5: Line 5:
# Otherwise, the application URI is automatically generated, using a format string from the {{Style=Identifier|ApplicationUriFormat}} property in the application parameters.
# Otherwise, the application URI is automatically generated, using a format string from the {{Style=Identifier|ApplicationUriFormat}} property in the application parameters.


The application URI format string consists of characters that are copied literally to the output string, and macros, which are replaced by values provided by QuickOPC.
When the macro is expanded, it is URL-escaped before it is inserted into the output string, so that a correct URI can be formed.
Macro replacements have the syntax '''$(''name'')''', where ''name'' is one of the names defined in the following table.


{| class="wikitable"
{| class="wikitable"
Line 36: Line 39:
| ProductVersion || Product version number from the application version info.
| ProductVersion || Product version number from the application version info.
|}
|}
The format string can have more sections, separated by a semicolon (';').

Revision as of 15:21, 20 December 2022

Every OPC UA application (client or server) needs an application URI, which uniquely identifies the application instance in the system.

Applications based on QuickOPC determine their application URI in the following way:

  1. If the application manifest contains a non-empty ApplicationUriString property, it will be used as the application URI.
  2. Otherwise, the application URI is automatically generated, using a format string from the ApplicationUriFormat property in the application parameters.

The application URI format string consists of characters that are copied literally to the output string, and macros, which are replaced by values provided by QuickOPC. When the macro is expanded, it is URL-escaped before it is inserted into the output string, so that a correct URI can be formed. Macro replacements have the syntax $(name), where name is one of the names defined in the following table.

Category Name Description
Common HostName Host name of the local computer.
ModuleName Name of the main module for the current process.
ProcessId Numeric Id of the current process.[1]
ProcessName The name of the current process.
Application Assembly SimpleName Simple name of the application assembly.
Version Version number of the application assembly.
Culture Supported culture of the application assembly.
PublicKeyToken Public key token of the application assembly.
Application Version Info CompanyName Name of the company from the application version info.
FileVersion File version number from the application version info.
Language Default language string from the application version info.
NameToken Internal name from the application version info, without the ".exe" extension if present.
ProductVersion Product version number from the application version info.

The format string can have more sections, separated by a semicolon (';').

  1. Normally not used, as it is not stable enough for the intended purpose.