OPCFoundation.NetStandard.Opc.Ua.Pumps.Client 2.0.1

Prefix Reserved
dotnet add package OPCFoundation.NetStandard.Opc.Ua.Pumps.Client --version 2.0.1
                    
NuGet\Install-Package OPCFoundation.NetStandard.Opc.Ua.Pumps.Client -Version 2.0.1
                    
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.
<PackageReference Include="OPCFoundation.NetStandard.Opc.Ua.Pumps.Client" Version="2.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="OPCFoundation.NetStandard.Opc.Ua.Pumps.Client" Version="2.0.1" />
                    
Directory.Packages.props
<PackageReference Include="OPCFoundation.NetStandard.Opc.Ua.Pumps.Client" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add OPCFoundation.NetStandard.Opc.Ua.Pumps.Client --version 2.0.1
                    
#r "nuget: OPCFoundation.NetStandard.Opc.Ua.Pumps.Client, 2.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package OPCFoundation.NetStandard.Opc.Ua.Pumps.Client@2.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=OPCFoundation.NetStandard.Opc.Ua.Pumps.Client&version=2.0.1
                    
Install as a Cake Addin
#tool nuget:?package=OPCFoundation.NetStandard.Opc.Ua.Pumps.Client&version=2.0.1
                    
Install as a Cake Tool

Opc.Ua.Pumps.Client

Client-side access to OPC 40223 — OPC UA for Pumps and Vacuum Pumps.

PumpsClient pumps = session.Pumps(telemetry);

await foreach (PumpEntry entry in pumps.EnumeratePumpsAsync(ct))
{
    PumpNameplate? nameplate = await pumps.ReadNameplateAsync(entry.NodeId, ct);
    PumpValueSet measurements = await pumps.ReadMeasurementsAsync(entry.NodeId, ct: ct);

    double? flow = measurements.GetDouble(BrowseNames.MassFlow);
    EUInformation? unit = measurements[BrowseNames.MassFlow]?.EngineeringUnits;
}

Discovery

A conforming server publishes a pump twice — as a Device Integration device below DeviceSet and as an OPC 40001-1 machine below Machines. EnumeratePumpsAsync looks in both and de-duplicates. Matching is by type hierarchy, so a vendor subtype of PumpType is found as well.

Reading

Each of the seven PumpType groups has its own accessor, and ReadPumpAsync takes the lot in one PumpSnapshot:

Call OPC 40223 group
ReadNameplateAsync Identification
ReadConfigurationAsync Configuration — design, implementation, system requirements
ReadOperationalAsync Operational — measurements, signals, control, actuation, multi-pump
ReadSupervisionAsync Events — the seven supervision categories
ReadMaintenanceAsync Maintenance — general, preventive, condition-based, breakdown
ReadDocumentationAsync Documentation
ReadPortsAsync Ports — drive, inlet and outlet connection ports

The open groups come back as a PumpValueSet keyed by browse name, filled from what the server actually publishes rather than from a fixed list — so a pump that publishes three of the 78 DesignType parameters yields three entries, and one that publishes all 78 yields all 78. Index it with the generated Opc.Ua.Pumps.BrowseNames constants.

Each PumpValue carries the engineering unit and instrument range alongside the reading, because an OPC 40223 measurement without its unit is not interpretable. That costs one extra round trip per group; pass PumpReadOptions.ValuesOnly when polling, since the metadata does not change.

Supervision

PumpSupervisionStatus.ActiveSignals collapses the roughly 150 boolean fault signals across the seven categories into just the ones currently raised — which is normally the question being asked.

Hosting

services.AddClient(...).AddPumpsClient();

registers a PumpsClientFactory and a Func<CancellationToken, Task<PumpsClient>>.

For the server side use Opc.Ua.Pumps.Server; the model, the generated types and the shared snapshot contracts live in Opc.Ua.Pumps.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Framework net48 is compatible.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.0.1 93 10/12/2026
2.0.0 94 10/7/2026