Specifies that you wish that the
OpcLabs.EasyOpc.DataAccess.EasyDAClientCore object instance works with an "isolated" connection to the OPC server, i.e. one that is not shared with other instances.
Syntax
bool Isolated {get; set;}
property bool Isolated {
bool get();
void set ( bool value);
}
'Declaration
Property Isolated As Boolean
'Usage
Dim instance As _EasyDAClient
Dim value As Boolean
instance.Isolated = value
value = instance.Isolated
Example
// This example shows how to create and use two isolated client objects, resulting in two separate connections to the target
// OPC DA server.
//
// Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html .
// OPC client and subscriber examples in C# on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-CSharp .
// Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own
// a commercial license in order to use Online Forums, and we reply to every post.
using System;
using System.Diagnostics;
using System.Threading;
using OpcLabs.EasyOpc.DataAccess;
using OpcLabs.EasyOpc.DataAccess.OperationModel;
namespace DocExamples.DataAccess._EasyDAClient
{
class Isolated
{
public static void Main1()
{
// Instantiate the client objects and make them isolated
var client1 = new EasyDAClient { Isolated = true };
var client2 = new EasyDAClient { Isolated = true };
// The callback is a local method the displays the value
void ItemChangedCallback(object sender, EasyDAItemChangedEventArgs eventArgs)
{
Debug.Assert(!(eventArgs is null));
string displayPrefix = $"[{eventArgs.Arguments.State}]";
if (eventArgs.Succeeded)
{
Debug.Assert(!(eventArgs.Vtq is null));
Console.WriteLine($"{displayPrefix} {eventArgs.Vtq}");
}
else
Console.WriteLine($"{displayPrefix} *** Failure: {eventArgs.ErrorMessageBrief}");
}
Console.WriteLine("Subscribing...");
client1.SubscribeItem("", "OPCLabs.KitServer.2", "Simulation.Random", 1000, ItemChangedCallback, state: 1);
client2.SubscribeItem("", "OPCLabs.KitServer.2", "Simulation.Random", 1000, ItemChangedCallback, state: 2);
Console.WriteLine("Processing item changed events for 10 seconds...");
Thread.Sleep(10 * 1000);
Console.WriteLine("Unsubscribing...");
client1.UnsubscribeAllItems();
client2.UnsubscribeAllItems();
Console.WriteLine("Waiting for 2 seconds...");
Thread.Sleep(2 * 1000);
}
}
}
' This example shows how to create and use two isolated client objects, resulting in two separate connections to the target
' OPC DA server.
'
' Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html .
' OPC client and subscriber examples in VB.NET on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-VBNET .
' Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own
' a commercial license in order to use Online Forums, and we reply to every post.
Imports OpcLabs.EasyOpc.DataAccess
Imports OpcLabs.EasyOpc.DataAccess.OperationModel
Namespace DataAccess._EasyDAClient
Partial Friend Class Isolated
Shared Sub Main1()
' Instantiate the client objects and make them isolated
Dim client1 As New EasyDAClient() With {.Isolated = True}
Dim client2 As New EasyDAClient() With {.Isolated = True}
' The callback is a local method the displays the value
Dim ItemChagedCallback = Sub(sender As Object, eventArgs As EasyDAItemChangedEventArgs)
Debug.Assert(eventArgs IsNot Nothing)
Dim displayPrefix As String = $"[{eventArgs.Arguments.State}]"
If eventArgs.Succeeded Then
Debug.Assert(eventArgs.Vtq IsNot Nothing)
Console.WriteLine($"{displayPrefix} {eventArgs.Vtq}")
Else
Console.WriteLine($"{displayPrefix} *** Failure: {eventArgs.ErrorMessageBrief}")
End If
End Sub
Console.WriteLine("Subscribing...")
client1.SubscribeItem("", "OPCLabs.KitServer.2", "Simulation.Random", 1000, ItemChagedCallback, state:=1)
client2.SubscribeItem("", "OPCLabs.KitServer.2", "Simulation.Random", 1000, ItemChagedCallback, state:=2)
Console.WriteLine("Processing item changed events for 10 seconds...")
Threading.Thread.Sleep(10 * 1000)
Console.WriteLine("Unsubscribing...")
client1.UnsubscribeAllItems()
client2.UnsubscribeAllItems()
Console.WriteLine("Waiting for 2 seconds...")
Threading.Thread.Sleep(2 * 1000)
End Sub
End Class
End Namespace
# This example shows how to create and use two isolated client objects, resulting in two separate connections to the
# target OPC DA server.
#
# Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html .
# OPC client and subscriber examples in Python on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-Python .
# Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own
# a commercial license in order to use Online Forums, and we reply to every post.
# The QuickOPC package is needed. Install it using "pip install opclabs_quickopc".
import opclabs_quickopc
import time
# Import .NET namespaces.
from OpcLabs.EasyOpc.DataAccess import *
# Item changed event handler
def itemChangedCallback(sender, eventArgs):
assert eventArgs is not None
displayPrefix = '[{}]'.format(eventArgs.Arguments.State)
if eventArgs.Succeeded:
assert eventArgs.Vtq is not None
print(displayPrefix + ' ' + eventArgs.Vtq.ToString() + '\n', end='')
else:
print(displayPrefix + ' *** Failure: ' + eventArgs.ErrorMessageBrief + '\n', end='')
# Instantiate the client objects and make them isolated.
client1 = EasyDAClient()
client1.Isolated = True
client2 = EasyDAClient()
client2.Isolated = True
print('Subscribing item changes...')
IEasyDAClientExtension.SubscribeItem(client1,
'', 'OPCLabs.KitServer.2', 'Simulation.Random', 1000,
EasyDAItemChangedEventHandler(itemChangedCallback), 1)
IEasyDAClientExtension.SubscribeItem(client2,
'', 'OPCLabs.KitServer.2', 'Simulation.Random', 1000,
EasyDAItemChangedEventHandler(itemChangedCallback), 2)
print('Processing item change notifications for 10 seconds...')
time.sleep(10)
print('Unsubscribing all items...')
client1.UnsubscribeAllItems()
client2.UnsubscribeAllItems()
print('Waiting for 2 seconds...')
time.sleep(2)
print('Finished.')
Requirements
Target Platforms: .NET Framework: Windows 10 (selected versions), Windows 11 (selected versions), Windows Server 2016, Windows Server 2022; .NET: Linux, macOS, Microsoft Windows
See Also