Configuring the OPC UA Application Server Settings
To configure FrameWorX as an OPC UA server, you need to configure the following server-specific settings in the ServerConfiguration section of the OPC UA application configuration file.
Base Addresses
Base addresses are the endpoints where the server listens for connections. Clients can connect either via TCP or HTTPS.
- ua:String for TCP: opc.tcp://localhost:5011/IcoFwxServer
- ua:String for HTTPS: https://localhost:5013/IcoFwxServer
Security Policies
Security policies define the security level of the communication. The following policies are supported, listed by security level from highest to lowest.
|
Security Level |
Values |
Description |
|---|---|---|
|
Level 4 Aes256_Sha256_RsaPss |
Required settings:
|
The strongest encryption using AES-256 with SHA-256 and RSA-PSS. |
|
Level 3 Basic256Sha256 (Sign and Encrypt) |
Required settings:
|
Strong encryption using AES-128 with SHA-256 and RSA-OAEP. |
|
Level 2 Aes256_Sha256_RsaPss |
Required settings:
|
Basic 256-bit encryption with SHA-256, full encryption. |
| Level 1 Basic256Sha256 (Sign Only) |
Required settings:
|
Message signing without encryption. |
|
Level 0 None |
Required settings:
|
No security (for testing/development only). |
Available options for the security policies settings:
-
SecurityMode
Mode
Value
Description
None
None_1
No security (not recommended).
Sign
Sign_2
Message signing only.
SignAndEncrypt
SignAndEncrypt_3
Full encryption and signing (recommended).
-
SecurityPolicyURI
Policy
Strength
Status
None
None
⚠ Testing only
Basic128Rsa15
Low
❌ Deprecated
Basic256
Medium
❌ Deprecated
Basic256Sha256
High
✅ Recommended
Aes128_Sha256_RsaOaep
High
✅ Recommended
Aes256_Sha256_RsaPss
Very High
✅ Recommended (OPC UA 1.04+)
Thread Pool Configuration
The following are the settings for request thread pool and request queue length.
|
Setting |
Value |
Description |
|---|---|---|
|
MinRequestThreadCount |
11 |
Minimum threads in the request pool. |
|
MaxRequestThreadCount |
1001 |
Maximum threads in the request pool. |
|
MaxQueuedRequestCount |
2002 |
Maximum queued requests. |
User Token Policies
The server supports two authentication methods:
-
Anonymous Access
- TokenType: Anonymous_0
- SecurityPolicyUri: http://opcfoundation.org/UA/SecurityPolicy#None
-
Username/Password
-
TokenType: UserName_1
-
SecurityPolicyUri: http://opcfoundation.org/UA/SecurityPolicy#Basic256Sha256
Passwords are encrypted using Basic256Sha256. -
Session Configuration
You can configure the following session-related settings.
|
Setting |
Value |
Description |
|---|---|---|
|
DiagnosticsEnabled |
false |
Enables or disables updating diagnostic information. |
|
MaxSessionCount |
100 |
Maximum simultaneous sessions. |
|
MinSessionTimeout |
10000 ms (10s) |
Minimum session lifetime. |
|
MaxSessionTimeout |
3600000 ms (60 min) |
Maximum session lifetime. |
|
MaxBrowseContinuationPoints |
10 |
Maximum browse continuation points per session. |
|
MaxQueryContinuationPoints |
10 |
Maximum query continuation points per session. |
|
MaxHistoryContinuationPoints |
100 |
Maximum history continuation points per session. |
|
MaxRequestAge |
600000 ms (10 min) |
Maximum age of incoming requests. |
Operation Limits
If needed, you can add the following settings with a custom value to limit or increase the number of nodes/items processed in a single service call. Appropriate limits can prevent resource exhaustion.
|
Limit |
Default |
Service |
Description |
|---|---|---|---|
|
MaxNodesPerRead |
2500 |
Read |
Maximum nodes in a single Read request. |
|
MaxNodesPerWrite |
2500 |
Write |
Maximum nodes in a single Write request. |
|
MaxNodesPerBrowse |
2500 |
Browse |
Maximum nodes to browse in one call. |
|
MaxNodesPerHistoryReadData |
1000 |
HistoryRead |
Maximum nodes for historical data read. |
|
MaxNodesPerHistoryReadEvents |
1000 |
HistoryRead |
Maximum nodes for historical event read. |
|
MaxNodesPerHistoryUpdateData |
1000 |
HistoryUpdate |
Maximum nodes for historical data update. |
|
MaxNodesPerHistoryUpdateEvents |
1000 |
HistoryUpdate |
Maximum nodes for historical event update. |
|
MaxNodesPerMethodCall |
2500 |
Call |
Maximum method calls in one request. |
|
MaxNodesPerRegisterNodes |
2500 |
RegisterNodes |
Maximum nodes to register. |
|
MaxNodesPerTranslateBrowsePathsToNodeIds |
2500 |
TranslateBrowsePaths |
Maximum browse paths to translate. |
|
MaxNodesPerNodeManagement |
2500 |
AddNodes/DeleteNodes |
Maximum nodes for node management. |
|
MaxMonitoredItemsPerCall |
2500 |
CreateMonitoredItems |
Maximum monitored items to create. |
Publishing Settings
You can configure the following publishing-related settings.
|
Setting |
Value |
Description |
|---|---|---|
|
MinPublishingInterval |
100 ms |
Minimum publishing interval. |
|
MaxPublishingInterval |
3600000 ms (60 min) |
Maximum publishing interval. |
|
PublishingResolution |
50 ms |
Publishing interval resolution (rounding). |
|
MaxSubscriptionLifetime |
3600000 ms (60 min) |
Maximum subscription lifetime. |
|
MaxMessageQueueSize |
100 |
Messages kept per subscription queue. |
|
MaxNotificationQueueSize |
100 |
Notifications kept per monitored item. |
|
MaxNotificationsPerPublish |
1000 |
Notifications in single publish response. |
|
MinMetadataSamplingInterval |
1000 ms (1s) |
Minimum sampling rate for metadata. |
|
MaxPublishRequestCount |
20 |
Maximum publish requests. |
|
MaxSubscriptionCount |
100 |
Maximum subscriptions. |
|
MaxEventQueueSize |
10000 |
Maximum event queue size. |
|
MinSubscriptionLifetime |
10000 ms (10s) |
Minimum subscription lifetime. |
Server Profiles
The server implements the following OPC UA profiles:
- http://opcfoundation.org/UA-Profile/Server/StandardUA2017
- http://opcfoundation.org/UA-Profile/Server/DataAccess
- http://opcfoundation.org/UA-Profile/Server/Methods
- http://opcfoundation.org/UA-Profile/Server/ReverseConnect
(Optional) Reverse Connect
The ReverseConnect section is commented out but can be enabled for reverse connectivity scenarios:
<ReverseConnect>
<Clients>
<ReverseConnectClient>
<EndpointUrl>opc.tcp://localhost:6600</EndpointUrl>
<MaxSessionCount>0</MaxSessionCount>
<Enabled>true</Enabled>
</ReverseConnectClient>
</Clients>
<ConnectInterval>15000</ConnectInterval>
<ConnectTimeout>30000</ConnectTimeout>
<RejectTimeout>60000</RejectTimeout>
</ReverseConnect>
What's Next?