Introduction
OPC Expert Web Server (previously known as OPC Expert Rest API Server) enables end-users and developers to easily connect to OPC Expert and exchange data in real-time. This includes both reading and writing data across a wide range of industrial communication protocols.
OPC Expert Web Server enables client applications to interact with OPC Expert data in a seamless, standardized way.
Key Features
Data Access
- Real-time data: Read all live data, create real-time trends, and display live updates.
- Write data: Control setpoints and modify process values.
- Historical data: Access and analyze historical records for trends and reporting.
- JSON responses: All data exchanged with the Web Server is returned in a consistent JSON format.
Supported Interfaces
- REST API: Standard HTTP-based interface for client-server communication.
- SignalR: Enables real-time, push-based updates to client applications.
Communication Protocols
- OPC Classic: Supports OPC DA (Data Access) and OPC HDA (Historical Data Access).
- OPC UA: Supports OPC UA DA and OPC UA HA.
- MQTT: Acts as Publisher, Subscriber, and Broker.
- Modbus: Supports Modbus Master (client) and Modbus Slave (server).
Platform Support
- Web Server (Windows-based):
- Workstations: Windows XP through Windows 11
- Servers: Windows Server 2003 through Windows Server 2022
- Client Applications:
- Runs on any hardware: PC, Mac, phone, PLC, etc.
- Supports any operating system: Windows, Linux, macOS, Android, iOS, iPadOS, Unix.
- Supports multiple programming languages: C, C++, Java, JavaScript, PHP, Python, VBA, VBScript, and more.
SignalR
OPC Expert Web Server offers a SignalR Hub with OPC-designed API functions. SignalR offers bidirectional communication between the Hub (Server) and the Hub Proxy (Client). The bidirectional feature enables asynchronous callbacks for server-side broadcasts and subscription updates for OPC capabilities.


Installation
To install OPC Expert Web Server, refer to OPC Expert’s main menu, and select Tools > Server & Services. 
Ensure to check the Enabledbox for “OPC Expert UA Server” and “Web Server (HTTP/HTTPS)”. You may also check the Servicebox if you want OPC Expert Web Server to run in the background as a Windows service. Finally, click button “OK” to start installation. 
After completing the installation, OPC Expert should display “Web Server” nodes on the left-hand tree (refer to image), if not, expand “This Computer” and the server nodes should populate. The Web Server nodes have the default server endpoints of “http://localhost” and “https://localhost”. 
API Endpoints
OPC Expert Web Server contains multiple API endpoints such as browse, connect, history, ping, read, subscribe, write. These API endpoints enable clients to communicate with OPC Servers without the overhead and hassle of implementing third-party libraries or APIs.
The SignalR Hub in OPC Expert Web Server in under the Hub name “OPC”, which supports most Rest API endpoints, however, some SignalR endpoints are not available in Rest API. Refer to the table below for supported and not-supported APIs.
Response
OPC Expert Web Server, which includes both the SignalR Hub and REST API endpoints, returns responses in a standardized JSON structure to ensure consistency across all client interactions. Each response follows a “wrapper” format where the data object contains the primary object requested by the client, and the meta data provides supplementary information about the response, such as server details, timestamps, pagination, errors, or additional context.
{
"data": {
//object returned by the API call
},
"meta": {
//metadata supporting the return object
}
}
Metadata
In OPC Expert Web Server, metadata in the JSON response provides additional information about the data being returned, often related to pagination, errors, or context, without modifying the core data itself. All OPC Expert Web Server’s JSON responses contain these:
{
"meta": {
"WrapperId": "1839",
"TotalPages": 1,
"CurrentPage": 1,
"NextPage": 1,
"PreviousPage": 1,
"TotalCount": 1,
"ServerTimeStamp": "2026-03-20T15:11:36.2857439Z"
}
}
SignalR Client (JavaScript)
Client-Side Dependencies
To use SignalR in a web application, the client must include the JavaScript dependencies. This library handles connection management, message transport, and communication with the SignalR hub on the server.
<script src="http://code.jquery.com/jquery-1.6.4.js"></script>
<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script src="http://code.jquery.com/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.signalR/2.4.3/jquery.signalR.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.signalR/2.4.3/jquery.signalR.min.js"></script>
SignalR
Web clients can easily connect to OPC Expert Web Server’s SignalR Hub by creating a connection to the Hub name “OPC”. The snippet below shows a working example of how to create a connection to the SignalR Hub installed on a local machine.
function Initialize() {
//create a connection to OPC Expert Web Server's SignalR Hub
hub_connection = $.hubConnection('http://localhost');
//create a proxy for OPC Expert Web Server under the Hub ‘OPC’
hub_proxy = hub_connection.createHubProxy('OPC');
//attach to the 'SubscriptionUpdate' callback
//this receives OPC Subscription udpates from OPC Expert Web Server
hub_proxy.on('SubscriptionUpdate', function (update) {
//data contains the subsription update object which is an array of nodes
for (let i = 0; i < update.data.length; i++) {
console.log(update.data[i]);
}
});
//IMPORTANT: starting a connection is not synchronous, use the "done" callback
//to determine when a connection is ready to invoke method calls
hub_connection.start({ withCredentials: false }).done(HubConnected);
}
Browse
The browse API uses the “browse” URL path parameter and is an HTTP GET method type request. The server allows clients to browse both local and remote OPC Servers, including their child nodes.
URL
https://localhost/browse?id=[node_id]
Parameters
SignalR
The Browse API can be invoked from the hub server with the “Browse” method name. This hub method can browse the root or a specific node from an OPC server.
function Browse() {
//the 'Browse' API can browse root when called without a parameter
_hub_proxy.invoke('Browse').then((response) => {
//'data' contains the child nodes
console.log(response.data);
});
}
function Browse(node) {
//the 'Browse' API can browse a specific node
_hub_proxy.invoke('Browse', node).then((response) => {
//'data' contains the child nodes
console.log(response.data);
});
}
Response
{
"data": [
{
"Server": "opc.tcp://OPC01:57888/OpcExpert",
"NodeIdentifier": {
"ReferenceTypeId": "i=35",
"IsForward": true,
"NodeId": "ns=2;s=OPC01",
"BrowseName": "2:OPC01",
"DisplayName": "OPC01",
"NodeClass": 1,
"TypeDefinition": "i=5001"
},
"DirectoryPathSeparator": "->",
"Browsed": false,
"UserFriendlyName": "OPC01",
"GetOriginalName": "OPC01",
"BState": 3,
"HasItems": false,
"BrowsePath": "OPC01",
"DirectoryPath": [
"OPC01",
"opc.tcp://OPC01:57888/OpcExpert",
"OPC01"
]
}
],
"meta": {
"WrapperId": "709",
"TotalPages": 1,
"CurrentPage": 1,
"NextPage": 1,
"PreviousPage": 1,
"TotalCount": 1,
"ServerTimeStamp": "2026-03-20T15:02:06.6913354Z"
}
}
Connect API
The connect API uses “connect” URL path and is an HTTP GET method request and does not require any parameters
URL
http://localhost/connect
SignalR
The Connect API can be invoked from the hub server with the “Connect” method name. This method is optional and can be used to read the current settings of OPC Expert Web Server. The “Connect” Hub method does not require any parameters.
function Connect() {
//the 'Connect' API does not require any parameters
_hub_proxy.invoke('Connect').then((response) => {
console.log(response);
});
}
A client does not need to use the connect API to do other API operations, such as “read” and “write”. This API is retrieves OPC Expert Web Server configuration.
The response the server returns on “Connect” is data containing the properties of OPC Expert Web Server such as EndPoints, SubscriptionRate, PathSeparator, SubscriptionTImeout, ReadRequestTimeout, WriteRequestTimeout, WriteRequestTimeout and AcceptCertificateByDefault. Note, these properties are only configurable through OPC Expert client application “OPC Expert.exe”.
Response
{
"data": {
"Name": "OPC Expert Web Server",
"SubscriptionRate": 1000,
"PathSeparator": "->",
"HttpPort": 80,
"HttpsPort": 443,
"SubscriptionTimeout": 120000,
"ReadRequestTimeout": 60000,
"WriteRequestTimeout": 60000,
"BrowseRequestTimeout": 60000,
"AcceptCertificatesByDefault": true,
"HubName": "OPC",
"Endpoints": [
"http://192.168.1.79:80",
"http://127.0.0.1:80",
"http://localhost:80",
"http://opc01:80",
"http://192.168.1.79",
"http://127.0.0.1",
"http://localhost",
"http://opc01",
"https://192.168.1.79:443",
"https://127.0.0.1:443",
"https://localhost:443",
"https://opc01:443",
"https://192.168.1.79",
"https://127.0.0.1",
"https://localhost",
"https://opc01"
]
},
"meta": {
"WrapperId": "3654",
"TotalPages": 1,
"CurrentPage": 1,
"NextPage": 1,
"PreviousPage": 1,
"TotalCount": 14,
"ServerTimeStamp": "2026-03-19T18:06:11.3755925Z"
}
}
History API (Raw & Processed)
OPC Expert Rest API Server provides two history APIs, the first one is processed history reads under the “history/processed” URL path parameter and the second one is under the “history/raw”.
Processed Request
The “history/processed” API is an HTTP GET method request and contains multiple optional parameters such as: “start”, “end”, “at”, “span”, “max”, “aggregate”, “slope_extrapolation”. The API requires the “item” parameter to be set at least once (it can be set multiple times for multiple OPC Items). The default values for the optional parameters can be found in the Parameters table (Figure 1.0)
URL
http://localhost/history/processed?item=[node-id]
Parameters
Raw Request
The “history/raw” API is an HTTP GET method request and contains multiple optional parameters such as: “start”, “end”, “at”, “span”, “max”, “unlimited_values”, “return_bounds”. The default values for the optional parameters can be found in the Parameters table (Figure 1.1)
URL
http://localhost:57080/history/raw?item=[node-id]
Parameters
Response
{
"data": [
{
"Item": {
"BufferSize": 0,
"Active": false,
"Enabled": false,
"Properties": {
"UpdateRate": -1,
"Writeable": true,
"ResultID": 0,
"Value": 0,
"SourceTimestamp": "2026-03-20T09:10:59.7775866-06:00",
"ServerTimestamp": "0001-01-01T00:00:00",
"DataType": "String",
"Description": "0",
"Validated": true,
"BufferSize": 10000,
"UseStatusCode": true,
"StatusCode": 0,
"StatusCodeDescription": "Good [0000]"
},
"Server": "opc.tcp://opc01:57890/opcexpertarchiveserver",
"Computer": "opc01",
"NodeIdentifier": {},
"DirectoryPathSeparator": "->",
"Browsed": false,
"UserFriendlyName": "ns=2;s=bridging WriteCount(0000007) to WriteCount(0000008)",
"GetOriginalName": "ns=2;s=bridging WriteCount(0000007) to WriteCount(0000008)",
"BState": 3,
"HasItems": false,
"BrowsePath": "bridging WriteCount(0000007) to WriteCount(0000008)",
"DirectoryPath": [
"opc01",
"opc.tcp://opc01:57890/opcexpertarchiveserver",
"ns=2;s=bridging WriteCount(0000007) to WriteCount(0000008)"
]
},
"Updates": [
{
"Value": 0,
"StatusCode": 1026,
"SourceTimeStamp": "2026-03-20T21:00:06Z",
"ServerTimeStamp": "2026-03-20T21:00:06Z"
}
]
}
],
"meta": {
"WrapperId": "1839",
"TotalPages": 1,
"CurrentPage": 1,
"NextPage": 1,
"PreviousPage": 1,
"TotalCount": 1,
"ServerTimeStamp": "2026-03-20T15:11:36.2857439Z"
}
}
Ping API
The ping API uses “ping” URL path parameter and is an HTTP GET method request. The “ping” API allows clients to test the responsiveness of the server. This API requires no parameters.
URL
http://localhost/ping
SignalR
function Ping() {
//the 'Ping' API does not require any parameters
_hub_proxy.invoke('Ping').then((response) => {
console.log(response);
});
}
Response
{
"data": "2026-03-20T11:28:12.1135285-06:00",
"meta": {
"WrapperId": "18048",
"ServerTimeStamp": "2026-03-20T17:28:12.1135285Z"
}
}
Read API / Poll API
OPC Expert Web Server provides a read API that uses “read” as the URL path parameter. The “read” API is an HTTP GET method request and contains multiple optional parameters.
OPC Expert Rest API Server can read OPC Items from both local and remote OPC Servers. The server does a read by connecting and subscribing (if not already) to the OPC Item at a rate of 1000 milliseconds by default. Note that on any initial “read” calls, the server must connect, subscribe, and poll the OPC Item first. A client may configure the subscription rate by setting the “rate” parameter with a number representing the update rate in milliseconds.
The response from a “read” request is a JSON containing an array of OPC Item properties. These properties include the ID, Value, Quality, SourceTimestamp, ServerTimestamp, DataType, StatusCode and UseStatusCode attributes.
For a smaller response payload, it is also possible to request for minimal properties by setting query parameter “values_only” to “true”. This results in a JSON response only containing attributes Value, Quality, SoureTimestamp and ServerTimestamp.
To read OPC Items using Read API:
- Read multiple OPC Item using the Node-ID or Browse Path.
- Read a remote OPC Item using the computer name or IP Address and Node-ID.
- Read with an existing subscription ID.
- Note: Implement the subscription API first to retrieve the necessary subscription ID.
URL
- http://localhost/read?item=[node-id]
- http://localhost/read?subscription=[subscription-id]
Parameters
SignalR
The Read API can be invoked from the hub server with the “Read” hub method name. This hub method requires an array of OPC item node identifiers.
function Read(nodes) {
//the 'Read' API can read a collection nodes
_hub_proxy.invoke('Read', nodes).then((response) => {
//data will contain the array of node properties
console.log(response.data);
});
}
Response:
{
"data": [
{
"BufferSize": 0,
"Active": true,
"Enabled": true,
"Properties": {
"UpdateRate": 1000,
"Writeable": true,
"ResultID": 0,
"Value": 3.141592654,
"SourceTimestamp": "2026-03-20T18:21:03.736Z",
"ServerTimestamp": "2026-03-20T18:21:23.2534831Z",
"DataType": "Double",
"Description": "",
"Validated": true,
"BufferSize": 10000,
"UseStatusCode": true,
"StatusCode": 192,
"StatusCodeDescription": "Good [00C0]"
},
"Server": "ICONICS.SimulatorOPCDA.2",
"Computer": "opc01",
"NodeIdentifier": {
"IsForward": true,
"NodeId": "ns=2;s=ICONICS.SimulatorOPCDA.2->Numeric.Memory",
"BrowseName": "ICONICS.SimulatorOPCDA.2->Numeric.Memory",
"DisplayName": "ICONICS.SimulatorOPCDA.2->Numeric.Memory",
"NodeClass": 2
},
"DirectoryPathSeparator": "->",
"Browsed": false,
"UserFriendlyName": "ICONICS.SimulatorOPCDA.2->Numeric.Memory",
"GetOriginalName": "ICONICS.SimulatorOPCDA.2->Numeric.Memory",
"BState": 3,
"HasItems": false,
"BrowsePath": "Numeric.Memory",
"DirectoryPath": [
"opc01",
"opc.tcp://opc01:57888/OpcExpert",
"ICONICS.SimulatorOPCDA.2->Numeric.Memory"
],
"ID": "ICONICS.SimulatorOPCDA.2->Numeric.Memory"
}
],
"meta": {
"WrapperId": "247",
"TotalPages": 1,
"CurrentPage": 1,
"NextPage": 1,
"PreviousPage": 1,
"TotalCount": 1,
"ServerTimeStamp": "2026-03-20T18:21:23.2581079Z"
}
}
Subscribe API
OPC Expert Rest API Server provides a subscribe / subscription API that uses the URL path parameter “subscribe”. The subscribe API is an HTTP GET method request only and the response is a JSON containing the subscription GUID. A subscription request should contain at least one Node ID in order for the server to create a subscription to the target OPC Server. A client may configure the subscription update rate (in milliseconds) by setting the “rate” query parameter, by default it is set to 1000 milliseconds.
OPC Expert Rest API Server also checks for any existing subscriptions with the same item collection first before making new subscriptions. This means multiple clients may have received the same subscription GUID.
There are two ways to implement the subscribe API.
- Subscribe with an OPC item’s Node IDs
- Subscribe with an existing subscription ID.
- Note that subscriptions only exist per process. Once a process shuts down or gets killed then any existing subscriptions are disposed.
URL
- http://localhost/subscribe?item=[node-id]
- http://localhost/subscribe?id=[subscription -id]
Parameters
SignalR
The Subscribe API can be invoked from the hub server with the “Subscribe” method name.
The “Subscribe” hub method can either be used with an array of OPC item node identifiers or with an existing subscription GUID.
function Subscribe(items, rate) {
//the 'Subscribe' API can subscribe to a collection of nodes
_hub_proxy.invoke('Subscribe', items, rate).then((response) => {
//data will contain the subscription information and items
console.log(response.data);
});
}
Response
{
"data": {
"UpdateRate": 1000,
"SubscribedItems": [
{
"BufferSize": 0,
"Active": true,
"Enabled": true,
"Properties": {
"UpdateRate": 1000,
"Writeable": true,
"ResultID": 0,
"Value": 3.141592654,
"SourceTimestamp": "2026-03-20T18:21:03.736Z",
"ServerTimestamp": "2026-03-20T18:21:23.2311393Z",
"DataType": "Double",
"Description": "",
"Validated": true,
"BufferSize": 10000,
"UseStatusCode": true,
"StatusCode": 192,
"StatusCodeDescription": "Good [00C0]"
},
"Server": "ICONICS.SimulatorOPCDA.2",
"Computer": "opc01",
"NodeIdentifier": {
"IsForward": true,
"NodeId": "ns=2;s=ICONICS.SimulatorOPCDA.2->Numeric.Memory",
"BrowseName": "ICONICS.SimulatorOPCDA.2->Numeric.Memory",
"DisplayName": "ICONICS.SimulatorOPCDA.2->Numeric.Memory",
"NodeClass": 2
},
"DirectoryPathSeparator": "->",
"Browsed": false,
"UserFriendlyName": "ICONICS.SimulatorOPCDA.2->Numeric.Memory",
"GetOriginalName": "ICONICS.SimulatorOPCDA.2->Numeric.Memory",
"BState": 3,
"HasItems": false,
"BrowsePath": "Numeric.Memory",
"DirectoryPath": [
"opc01",
"opc.tcp://opc01:57888/OpcExpert",
"ICONICS.SimulatorOPCDA.2->Numeric.Memory"
],
"ID": "ICONICS.SimulatorOPCDA.2->Numeric.Memory"
}
],
"ID": "a3eaf409",
"ItemCount": 1,
"LastReadTimestamp": "2026-03-20T12:29:51.2188202-06:00",
"ReportByException": false
},
"meta": {
"WrapperId": "1254",
"ServerTimeStamp": "2026-03-20T18:29:51.2078892Z"
}
}
Write API
The write API uses the “write” URL path parameter and is both an HTTP GET and HTTP POST method request. OPC Expert Rest API Server can write to local and remote OPC Items, and the response is a JSON containing an array of OPC Item properties after writing. Therefore, the “write” API is “write” and “read” request, the “read” is present to confirm the “write” executed properly. Hence, this is a form of a verified write.
To use the “write” API with an HTTP GET method request:
- The “item” query parameter is set using the Node-ID of the OPC Item with a corresponding “value” query parameter which will contain the Value to set for the item.
- This “item” and “value” pairing can be done multiple times in a single request and is order based. This means that these endpoints will yield the same result:
- http://localhost/write?item=Item1&value=Value&item=Item2&value=Value2
- http://localhost/write?item=Item1&item=Item2&value=Value1value=Value2
- http://localhost/write?item=Item1&value=Value&value=Value2&item=Item2
To use the “write” API with an HTTP POST method request:
- The body is an array of OPC Item properties which should at least include the ID and Value. Other properties can also be added, such as Quality, SourceTimestamp, ServerTimestamp, Description, and StatusCode.
URL
http://localhost/write?item=[node-id]&value=[node-value]
Parameters
SignalR
The Write API can be invoked from the hub server with the “Write” hub method name. This hub method requires 2 array parameters. The first array is a collection of OPC item node identifiers. The second array is a collection of corresponding values for the items in the first array. The contents of the arrays must be in order of item-to-value pairing.
function Write(items, values) {
//the 'Write' API can write to a collection nodes
_hub_proxy.invoke('Write', items, values).then((response) => {
//data will contain the array of node properties
console.log(response.data);
});
}
Response
{
"data": [
{
"BufferSize": 0,
"Active": false,
"Enabled": false,
"Properties": {
"UpdateRate": 1000,
"Writeable": true,
"ResultID": 0,
"Value": 0,
"SourceTimestamp": "2026-03-20T15:20:39.4446167-06:00",
"ServerTimestamp": "0001-01-01T00:00:00",
"DataType": "Double",
"Validated": false,
"BufferSize": 10000,
"UseStatusCode": true,
"StatusCode": 0,
"StatusCodeDescription": "Good [00C0]"
},
"Server": "ICONICS.SimulatorOPCDA.2",
"Computer": "opc01",
"NodeIdentifier": {
"ReferenceTypeId": {},
"IsForward": true,
"NodeId": {
"NamespaceIndex": 2,
"IdType": 1,
"Identifier": "ICONICS.SimulatorOPCDA.2->Numeric.Memory",
"ServerIndex": 0,
"IsNull": false,
"IsAbsolute": false
},
"BrowseName": {
"NamespaceIndex": 0,
"Name": "ICONICS.SimulatorOPCDA.2->Numeric.Memory"
},
"DisplayName": {
"Text": "ICONICS.SimulatorOPCDA.2->Numeric.Memory"
},
"NodeClass": 2,
"TypeDefinition": {}
},
"ResourceType": "UAItem",
"DirectoryPathSeparator": "->",
"Browsed": false,
"UserFriendlyName": "ICONICS.SimulatorOPCDA.2->Numeric.Memory",
"GetOriginalName": "ICONICS.SimulatorOPCDA.2->Numeric.Memory",
"BState": 3,
"HasItems": false,
"BrowsePath": "Numeric.Memory",
"DirectoryPath": [
"opc01",
"opc.tcp://opc01:57888/OpcExpert",
"ICONICS.SimulatorOPCDA.2->Numeric.Memory"
],
"ID": "ICONICS.SimulatorOPCDA.2->Numeric.Memory"
}
],
"meta": {
"WrapperId": "11932",
"TotalPages": 1,
"CurrentPage": 1,
"NextPage": 1,
"PreviousPage": 1,
"TotalCount": 1,
"ServerTimeStamp": "2026-03-20T21:20:39.7981777Z"
}
}
OPC Expert – Rest API Command Features
OPC Expert client application has a “Rest API Command” right-click menu, which only appears when users setup a local “OPC Expert Web Server”. The menu enables users to generate code snippets for OPC Expert Web Server APIs.
To use the “Rest API Command” menu, right-click on one or multiple OPC Items in OPC Expert and hover over “Rest API Command”.

HTTP (Non-Secure) / HTTPS Menu (Secure)
The “Rest API Command” menu contains sub-menus: “HTTP” or “HTTPS”. This allows the client to select the protocol to use when generating the URL / endpoint or code snippets.
Copy Item ID
This sub menu copies the OPC Item identifier to the clipboard. This menu item is mostly used for debugging or support purposes.
URL / Endpoint
The URL / Endpoint submenu allows the client to copy a (URL Encoded) API endpoint of one or multiple OPC Items. For example, in the diagram, the endpoint http://localhost/read?item=System-%3E_Calculations–HeartBeat can be copied to the clipboard, open directly on your local internet browser, or display as a QR code image.

Generate Code Snippet
OPC Expert can generate code snippets for 3rd party applications. In the diagram below, a client has the option to generate code snippets in C#, Java, JavaScript, VBA and Python. The code snippet is automatically copied onto the clipboard (as text), and the user can then add it to their application. 
OPC Expert Trend Application
OPC Expert Client Application allows users to trend real-time and historical OPC items on Windows Forms. 
OPC Expert Trend applications can be opened on OPC Expert or on your local web browsers like Google Chrome, Mozilla Firefox and Microsoft Edge. The trend can also be displayed on any smart devices connected to the local network.

OPC Expert Trend on Smart Devices
OPC Expert can display a QR code image containing the trending endpoint for an OPC Item. To display the trend as a QR Code, click on “Options” and select “QR Code”. A new window should pop up with the trend endpoint displayed as a QR Code. 
To open on a smart device, simply capture the QR code on the camera app and a hyperlink will lead to OPC Expert Trend page. Ensure the smart device is connected to the same network as OPC Expert.
