Overview
This page contains information on the OPC UA Server Simulator Configuration and Runtime behavior.
The OPC Simulator can be Started from the DataExplorer User interface, or running its executable directly with the proper command line parameters.
When running, it will created a OPC-UA server, populating topics with simulated data. From the client point of view, the OPC Simulator, will just be found and act as it was any other OPC-UA server.
On this page:
Simulator Configuration
The simulator is divided in three regions: a TreeView display, Configuration settings for simulation and runtime monitoring, and a Client Connections list.
To start up the OPC Server, use the button in the top-right corner (1).
Note: The OPC Server endpoint URL cannot be changed. Defaults is opc.tcp://127.0.0.1:4840. The OPC Server is configured for the following Security Policies:
None.
Basic256Sha256 - Sign&Encrypt.
Aus128_Sha256_RsaOaep - Sign&Encrypt.
If a third-party OPC Client tries to connect using one of the Security Policies other than None, you should see a dialog window popping up with some information about the Certificate issued by the OPC Client.
Use the Trust button to allow the Client connection, or Reject to block it.
You can store the OPC Client in the Server’s trusted list, enabling the Save to Trust List CheckBox.
Simulation Settings
In this tab, you will be able to configure the Data Structure for the OPC Server address space.
Where:
NodeName: Name of the Node (folder) that will be used in the OPC Server Address space. The final name will be a concatenation of the defined NodeName and NumberOfNodes.
NumberOfNodes: Defines the number of nodes in the server.
TagName: Name of the Tag (variable) that will be used in the OPC Server Address space. The final name will be a concatenation of the defined TagName and NumberOfTags.
NumberOfTags: Defines the number of tags in each node.
Use the Apply button to make sure any changes are applied to the Server.
You can not alter any Simulation Settings parameters while the server is running.
Runtime Monitoring
In this tab, you will be able to monitor some properties of your OPC Server variables. The output fields will display information on the variable selected in the TreeView
Where:
NodeId: DataStructure that represents an element of the OPC Server.
DisplayName: Friendly name defined for element.
NodeClass: Class of the node. E.g.: Object, Variable.
DataType: Variable DataType.
Value: Variable Value.
Timestamp: Variable Timestamp.
TreeView Data Browser
In this region, you will be able to see the OPC Server Address space in a TreeView structure.
.
The TreeView connects only to the OPC Simulator. It cannot be used to connect to other OPC Servers.
Client Connections List
In this tab, you can monitor the clients that are/were connected to the OPC Server.
Where:
Client: Name of the Client’s session.
Connected At: DateTime the Client connected to the Server.
Disconnected At: DateTime the Client disconnected from the Server. The Client Connections list is cleared if the OPC Server is stopped.
Command Line Parameters
The OPC Simulator can be executed with custom parameters through the command line. The syntax is as follows:
"..\OPCUA_Simulator.exe" /param1:<param1Value> ... /paramN
The existing parameters are listed below:
Minimized: Application starts minimized.
AutoStart: OPC Server is started automatically.
DataSource: Full path for *.xml configuration file with custom Address space. More details on the syntax for the *.xml file in section 4.
NumberOfNodes: Number of nodes for OPC Server Address Space. [Default configuration only].
NumberOfTags: Number of tags in each node for OPC Server Address space.
[Default configuration only].
Usage:
"..\OPCUA_Simulator.exe" /Minimized /AutoStart /DataSource:"C:\Documents\CustomSource.xml" /NumberOfTags: 4 /NumberOfNodes: 2
The input parameters are not case-sensitive
Custom DataSource (*.xml)
With a custom configuration file, you will be able to define your own OPC Server DataStructure. The syntax for the configuration is described below:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <MyCustomObjects> <Motors> <Motor1> <Current DataType="Double" Min="-20" Max="20" /> <Voltage DataType="Double" Min="12" Max="14" /> <Temperature DataType="Integer" Min="40" Max="60" /> <Status DataType="Boolean" /> <LastMessage DataType="String" Max="10" /> </Motor1> </Motors> <Controllers> <Controller1> <Kp DataType="Double" Min="0" Max="50"/> <Ki DataType="Double" Min="0" Max="100"/> <Setpoint DataType="Double" Min="60" Max="65"/> </Controller1> </Controllers> </MyCustomObjects> </configuration>
You can customize the Levels and Variables in any way, as long as it follows the correct XML syntax. The Variables are customized with the attributes:
DataType: Defines the variable type. Options are:
Double.
Integer.
Boolean.
Long.
String.
Min: Defines the minimum value for simulated data.
If not present, defaults to 0 (zero).
If DataType is Boolean, not used.
If DataType is String, not used.
Max: Defines the maximum value for simulated data.
If not present, defaults to 100.
If DataType is Boolean, not used.
If DataType is String, will define the string length to be simulated.
The only mandatory entry for the XML file is to contain the <configuration></configuration> entries, its internal organization for the simulation items is completely free.