Opc.UaFx.Client 2.29.0

.NET Core 3.1 .NET Standard 2.0 .NET Framework 4.6
There is a newer prerelease version of this package available.
See the version list below for details.
NuGet\Install-Package Opc.UaFx.Client -Version 2.29.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
dotnet add package Opc.UaFx.Client --version 2.29.0
<PackageReference Include="Opc.UaFx.Client" Version="2.29.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Opc.UaFx.Client --version 2.29.0
#r "nuget: Opc.UaFx.Client, 2.29.0"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install Opc.UaFx.Client as a Cake Addin
#addin nuget:?package=Opc.UaFx.Client&version=2.29.0

// Install Opc.UaFx.Client as a Cake Tool
#tool nuget:?package=Opc.UaFx.Client&version=2.29.0

Getting Started

The whole client development guides can be found here:

The most essential snippet to dig in:

using Opc.UaFx.Client;
...
using (var client = new OpcClient("opc.tcp://localhost:4840/")) {
    client.Connect();
    // Your code to interact with the server.
}

Let's Read a Node

OpcValue isRunning = client.ReadNode("ns=2;s=Machine/IsRunning");

More: Read Values of Node(s)

Let's Write a Node

OpcStatus result = client.WriteNode("ns=2;s=Machine/Job/Cancel", true);

More: Write Values of Node(s)

Let's Read a File Node

// All at once
string reportText = OpcFile.ReadAllText(client, "ns=2;s=Machine/Report");

// All via a stream
using (var stream = OpcFile.OpenRead(client, "ns=2;s=Machine/Report")) {
    var reader = new StreamReader(stream);

    while (!reader.EndOfStream)
        Console.WriteLine(reader.ReadLine());
}

More: Working with File Nodes

Browse the Node Tree

// One node
OpcNodeInfo machineNode = client.BrowseNode("ns=2;s=Machine");

// A child node
OpcNodeInfo jobNode = machineNode.Child("Job");

// Some child nodes
foreach (var childNode in machineNode.Children()) {
    // Your code to operate on each child node.
}

// Some node attributes
OpcAttributeInfo displayName = machineNode.Attribute(OpcAttribute.DisplayName);

foreach (var attribute in machineNode.Attributes()) {
    // Your code to operate on each attribute.
}

More: Browsing Nodes

Observe some Alarm's and Event's

client.SubscribeEvent(OpcObjectTypes.Server, HandleGlobalEvents);

...

private static void HandleGlobalEvents(object sender, OpcEventReceivedEventArgs e)
{
    Console.WriteLine(e.Event.Message);
}

More: Working with Events

Observe only Alarm's and Event's from interest

var severity = new OpcSimpleAttributeOperand(OpcEventTypes.Event, "Severity");
var conditionName = new OpcSimpleAttributeOperand(OpcEventTypes.Condition, "ConditionName");

var filter = OpcFilter.Using(client)
        .FromEvents(OpcEventTypes.AlarmCondition)
        .Where(severity > OpcEventSeverity.Medium & conditionName.Like("Temperature"))
        .Select();

client.SubscribeEvent(OpcObjectTypes.Server, filter, HandleGlobalEvents);

More: Working with Events

Product Versions
.NET net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows
.NET Core netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1
.NET Standard netstandard2.0 netstandard2.1
.NET Framework net46 net461 net462 net463 net47 net471 net472 net48
MonoAndroid monoandroid
MonoMac monomac
MonoTouch monotouch
Tizen tizen40 tizen60
Xamarin.iOS xamarinios
Xamarin.Mac xamarinmac
Xamarin.TVOS xamarintvos
Xamarin.WatchOS xamarinwatchos
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on Opc.UaFx.Client:

Package Downloads
Crosser.EdgeNode.Modules.Opc

Package Description

OPCUA.Library

OPC UA library supporting OPC UA Client development for Xserver.IoT device.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
3.0.0-preview1-210917 797 9/17/2021
3.0.0-preview1 150 9/14/2021
2.29.0 177 9/16/2022
2.28.1 369 9/2/2022
2.28.0 544 8/19/2022
2.27.0 1,858 6/27/2022
2.26.0 3,897 4/13/2022
2.25.0 1,394 3/22/2022
2.24.0 447 3/9/2022
2.23.0 1,981 3/2/2022
2.22.0.1 1,133 2/25/2022
2.22.0 3,749 2/11/2022
2.21.0 910 2/1/2022
2.20.4 944 1/14/2022
2.20.3 1,060 1/4/2022
2.20.2 2,761 10/20/2021
2.20.1 587 10/8/2021
2.20.0 2,548 9/17/2021
2.19.2 1,629 9/10/2021
2.19.1 392 9/1/2021
2.19.0 438 8/27/2021
2.18.5 1,075 8/13/2021
2.18.4 246 8/9/2021
2.18.3 3,342 6/28/2021
2.18.2 309 6/17/2021
2.18.1 654 6/2/2021
2.18.0 909 5/26/2021
2.17.0 1,390 5/4/2021
2.16.1 371 4/21/2021
2.16.0 257 4/20/2021
2.15.0 566 4/1/2021
2.14.0 672 3/4/2021
2.13.0 445 3/1/2021
2.12.3 347 2/17/2021
2.12.2 2,555 2/15/2021
2.12.1 229 2/11/2021
2.12.0 634 2/4/2021
2.11.5 730 12/21/2020
2.11.4 325 12/15/2020
2.11.3.1 717 11/27/2020
2.11.3 398 11/23/2020
2.11.2 475 11/10/2020
2.11.1 367 11/5/2020
2.11.0 3,521 10/6/2020
2.10.0.3 1,071 9/11/2020
2.10.0.2 314 9/9/2020
2.10.0.1 712 7/15/2020
2.10.0 899 7/14/2020
2.9.2.1 3,504 5/8/2020
2.9.2 395 5/6/2020
2.9.1 447 4/22/2020
2.9.0 913 4/1/2020
2.8.3.1 4,889 1/24/2020
2.8.3 1,101 1/16/2020
2.8.2.1 740 12/13/2019
2.8.2 756 11/6/2019
2.8.1.3 599 10/24/2019
2.8.1.2 355 10/23/2019
2.8.1.1 475 10/11/2019
2.8.1 471 9/25/2019
2.8.0 433 9/18/2019
2.7.5.1 479 8/15/2019
2.7.5 413 8/13/2019
2.7.4 2,633 6/7/2019
2.7.3.1 466 5/23/2019
2.7.3 467 5/17/2019
2.7.2 451 5/10/2019
2.7.1.1 455 4/29/2019
2.7.1 765 3/25/2019
2.7.0 481 3/14/2019
2.6.0 700 2/20/2019
2.5.7 528 2/6/2019
2.5.6 5,847 10/19/2018
2.5.5 723 10/11/2018