OPCFoundation.NetStandard.Opc.Ua.Robotics.Server.Debug
2.0.0-preview.2
Prefix Reserved
dotnet add package OPCFoundation.NetStandard.Opc.Ua.Robotics.Server.Debug --version 2.0.0-preview.2
NuGet\Install-Package OPCFoundation.NetStandard.Opc.Ua.Robotics.Server.Debug -Version 2.0.0-preview.2
<PackageReference Include="OPCFoundation.NetStandard.Opc.Ua.Robotics.Server.Debug" Version="2.0.0-preview.2" />
<PackageVersion Include="OPCFoundation.NetStandard.Opc.Ua.Robotics.Server.Debug" Version="2.0.0-preview.2" />
<PackageReference Include="OPCFoundation.NetStandard.Opc.Ua.Robotics.Server.Debug" />
paket add OPCFoundation.NetStandard.Opc.Ua.Robotics.Server.Debug --version 2.0.0-preview.2
#r "nuget: OPCFoundation.NetStandard.Opc.Ua.Robotics.Server.Debug, 2.0.0-preview.2"
#:package OPCFoundation.NetStandard.Opc.Ua.Robotics.Server.Debug@2.0.0-preview.2
#addin nuget:?package=OPCFoundation.NetStandard.Opc.Ua.Robotics.Server.Debug&version=2.0.0-preview.2&prerelease
#tool nuget:?package=OPCFoundation.NetStandard.Opc.Ua.Robotics.Server.Debug&version=2.0.0-preview.2&prerelease
Opc.Ua.Robotics.Server
Server hosting for the OPC 40010 Robotics companion model.
The package uses source-generated model loaders and fluent accessors. It provides:
AddRoboticsTypeSystem— loads the OPC UA DI base model plus the IA and Robotics companion models (all source-generated) into a node manager's predefined-node collection, in dependency order.RoboticsNodeManagerandRoboticsNodeManagerFactory— a stock DI-based server manager with an application-owned instance namespace.IRoboticsModelProvider— deterministic composition of additional compiled predefined models. Providers run in ascendingOrder; the built-in DI/IA/ Robotics provider usesint.MinValueso application providers run afterward by default. A replacement core provider must advertise both the IA and Robotics namespaces.AddRobotics,AddRoboticsModel,ConfigureRobotics, andConfigureRoboticsFor— Generic Host registration and ordered startup configuration APIs.IRoboticsBuildContextandIRoboticsConfigurator— one shared fluent builder per manager startup, with narrow service resolution and simulation startup on sealing.AddMotionDeviceSystemAsync— a progressive, validated topology builder for controllers, controller software, motion devices, axes, power trains, drives, safety state, and task controls. Source-generated factories assign per-instance NodeIds before the builder validates and recursively registers the completed generated state tree.
builder.ConfigureRobotics(async context =>
{
await context.AddMotionDeviceSystemAsync("RobotCell", system =>
{
IMotionDeviceBuilder robot = system.AddMotionDevice("Robot", motion =>
motion.WithMotionDeviceCategory(
MotionDeviceCategoryEnumeration.ARTICULATED_ROBOT));
IDriveBuilder drive = robot.AddDrive(
"Drive",
item => item.WithProductCode("DRIVE-1"));
IPowerTrainBuilder train = robot.AddPowerTrain("PowerTrain");
IAxisBuilder axis = robot.AddAxis(
"Axis1",
item => item.WithMotionProfile(AxisMotionProfileEnumeration.ROTARY)
.WithActualPosition(0));
train.AddMotor("Motor", motor => motor.IsDrivenBy(drive));
axis.Requires(train);
train.Moves(axis);
ISafetyStateBuilder safety = system.AddSafetyState("Safety");
IControllerBuilder controller = system.AddController("Controller");
controller.AddSoftware("ControlSoftware", software =>
software.WithIdentification(data =>
{
data.Manufacturer = new LocalizedText("Vendor");
data.Model = new LocalizedText("Robot Runtime");
data.SoftwareRevision = "1.0";
}));
ITaskControlBuilder taskControl = controller.AddTaskControl(
"TaskControl",
task => task.WithComponentName("Main task"));
controller.Controls(robot).UsesSafetyState(safety);
taskControl.Controls(robot);
});
});
Each controller must contain at least one SoftwareType instance and one
TaskControlType instance because both containers define mandatory placeholder
children. The Controls and IsDrivenBy relationships are optional.
ITaskControlBuilder.Controls and IMotionDeviceBuilder.UsesTaskControl add
the standard Controls relation. When a task control also has a
TaskControlOperationType, the controlled motion device receives the matching
TaskControlReference.
IGearBuilder.WithPitch accepts millimetres of linear travel per output-side
revolution. Pitch is a BaseDataVariableType; the builder does not add
EngineeringUnits.
Instantiate Robotics-typed objects with the generated
ISystemContext.CreateInstanceOf<Type> factories (for example
CreateInstanceOfMotionDeviceSystemType, CreateInstanceOfMotionDeviceType,
CreateInstanceOfAxisType, CreateInstanceOfControllerType) so each instance carries
the full companion-type structure rather than only a type-definition reference.
The default instance namespace is application-specific and can be changed with
RoboticsServerOptions.InstanceNamespaceUri. It must be distinct from the OPC
UA, DI, IA, Robotics, and all configured model-provider namespaces.
After a custom DiNodeManager has loaded the DI, IA, and Robotics models, call
manager.CreateRoboticsBuildContext(options) for direct configuration outside
the hosting pipeline. The helper validates the DeviceSet, Robotics model, and
configured instance namespace before returning the context. Its
Context.NodeIdFactory must implement IRoboticsNodeIdFactory; the allocator
must be thread-safe, reserve unique NodeIds for unregistered nodes, and allocate
Robotics instances in the configured instance namespace.
AddRobotics() owns the DI namespace and cannot be combined with
AddOpcUaDi(). Other companion-manager hosting extensions that load DI should
use the shared DiAddressSpaceOwnership marker to enforce the same rule.
Robot Intent (draft)
The package also hosts the draft OPC UA — Robot Intent model. Robot Intent
adds task-level motion commands that OPC 40010 leaves undefined and represents
each submitted command as a Part 10 program lifecycle, so motion that takes
minutes outlives the Call that admitted it.
Use AddRobotIntent() to load the Robot Intent NodeSet and register the
DI-hosted controller services, AddRobotIntentExecutor<TExecutor>() to provide
the application executor, and ConfigureRobotIntent(...) to declare
controllers with the fluent builder. The builder exposes frames, fitted tools,
locations, axes, outputs, programs, safety state, kinematic description,
real-time channels, and truthful capability declarations through
Accepts<TIntent>(). For servers that want Robot Intent without OPC 40010 or
DI, RobotIntentNodeManagerFactory and RobotIntentNodeManager provide the
standalone NodeManager path.
Executors implement IIntentExecutor. The host owns admission, queueing,
state transitions, cancellation admission, and outcomes; the executor owns the
actual robot work and reports progress through IIntentProgress.
The namespace
http://opcfoundation.org/UA/RobotIntent/and every NodeId in it are provisional. The model is a working-group draft and is neither official nor endorsed by the OPC Foundation.
See the Robotics developer guide, the Robot Intent guide, and the Dependency Injection guide.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. 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 Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| .NET Framework | net472 is compatible. net48 is compatible. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.7.2
- BitFaster.Caching (>= 2.6.0)
- BouncyCastle.Cryptography (>= 2.7.0)
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.10)
- Microsoft.Bcl.HashCode (>= 6.0.0)
- Microsoft.Bcl.TimeProvider (>= 10.0.10)
- Microsoft.Extensions.Configuration (>= 10.0.10)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.10)
- Microsoft.Extensions.DependencyInjection (>= 10.0.10)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Diagnostics (>= 10.0.10)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Http (>= 10.0.10)
- Microsoft.Extensions.Logging (>= 10.0.10)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Options (>= 10.0.10)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.10)
- OPCFoundation.NetStandard.Opc.Ua.Di.Server.Debug (>= 2.0.0-preview.2)
- OPCFoundation.NetStandard.Opc.Ua.Robotics.Debug (>= 2.0.0-preview.2)
- OPCFoundation.NetStandard.Opc.Ua.Server.Debug (>= 2.0.0-preview.2)
- System.Buffers (>= 4.6.1)
- System.Collections.Immutable (>= 9.0.0)
- System.Diagnostics.DiagnosticSource (>= 10.0.10)
- System.Formats.Asn1 (>= 10.0.10)
- System.Memory (>= 4.6.3)
- System.Runtime.CompilerServices.Unsafe (>= 6.1.2)
- System.Text.Json (>= 10.0.10)
- System.Threading.Channels (>= 10.0.10)
- System.Threading.RateLimiting (>= 10.0.10)
- System.Threading.Tasks.Extensions (>= 4.6.3)
-
.NETFramework 4.8
- BitFaster.Caching (>= 2.6.0)
- BouncyCastle.Cryptography (>= 2.7.0)
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.10)
- Microsoft.Bcl.HashCode (>= 6.0.0)
- Microsoft.Bcl.TimeProvider (>= 10.0.10)
- Microsoft.Extensions.Configuration (>= 10.0.10)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.10)
- Microsoft.Extensions.DependencyInjection (>= 10.0.10)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Diagnostics (>= 10.0.10)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Http (>= 10.0.10)
- Microsoft.Extensions.Logging (>= 10.0.10)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Options (>= 10.0.10)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.10)
- OPCFoundation.NetStandard.Opc.Ua.Di.Server.Debug (>= 2.0.0-preview.2)
- OPCFoundation.NetStandard.Opc.Ua.Robotics.Debug (>= 2.0.0-preview.2)
- OPCFoundation.NetStandard.Opc.Ua.Server.Debug (>= 2.0.0-preview.2)
- System.Buffers (>= 4.6.1)
- System.Collections.Immutable (>= 9.0.0)
- System.Diagnostics.DiagnosticSource (>= 10.0.10)
- System.Formats.Asn1 (>= 10.0.10)
- System.Memory (>= 4.6.3)
- System.Runtime.CompilerServices.Unsafe (>= 6.1.2)
- System.Text.Json (>= 10.0.10)
- System.Threading.Channels (>= 10.0.10)
- System.Threading.RateLimiting (>= 10.0.10)
- System.Threading.Tasks.Extensions (>= 4.6.3)
-
.NETStandard 2.1
- BitFaster.Caching (>= 2.6.0)
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.10)
- Microsoft.Bcl.TimeProvider (>= 10.0.10)
- Microsoft.Extensions.Configuration (>= 10.0.10)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.10)
- Microsoft.Extensions.DependencyInjection (>= 10.0.10)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Diagnostics (>= 10.0.10)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Http (>= 10.0.10)
- Microsoft.Extensions.Logging (>= 10.0.10)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Options (>= 10.0.10)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.10)
- OPCFoundation.NetStandard.Opc.Ua.Di.Server.Debug (>= 2.0.0-preview.2)
- OPCFoundation.NetStandard.Opc.Ua.Robotics.Debug (>= 2.0.0-preview.2)
- OPCFoundation.NetStandard.Opc.Ua.Server.Debug (>= 2.0.0-preview.2)
- System.Collections.Immutable (>= 9.0.0)
- System.Diagnostics.DiagnosticSource (>= 10.0.10)
- System.Formats.Asn1 (>= 10.0.10)
- System.Runtime.CompilerServices.Unsafe (>= 6.1.2)
- System.Text.Json (>= 10.0.10)
- System.Threading.Channels (>= 10.0.10)
- System.Threading.RateLimiting (>= 10.0.10)
-
net10.0
- BitFaster.Caching (>= 2.6.0)
- Microsoft.Bcl.TimeProvider (>= 10.0.10)
- Microsoft.Extensions.Configuration (>= 10.0.10)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.10)
- Microsoft.Extensions.DependencyInjection (>= 10.0.10)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Diagnostics (>= 10.0.10)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Http (>= 10.0.10)
- Microsoft.Extensions.Logging (>= 10.0.10)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Options (>= 10.0.10)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.10)
- OPCFoundation.NetStandard.Opc.Ua.Di.Server.Debug (>= 2.0.0-preview.2)
- OPCFoundation.NetStandard.Opc.Ua.Robotics.Debug (>= 2.0.0-preview.2)
- OPCFoundation.NetStandard.Opc.Ua.Server.Debug (>= 2.0.0-preview.2)
- System.Threading.RateLimiting (>= 10.0.10)
-
net8.0
- BitFaster.Caching (>= 2.6.0)
- Microsoft.Bcl.TimeProvider (>= 10.0.10)
- Microsoft.Extensions.Configuration (>= 10.0.10)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.10)
- Microsoft.Extensions.DependencyInjection (>= 10.0.10)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Diagnostics (>= 10.0.10)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Http (>= 10.0.10)
- Microsoft.Extensions.Logging (>= 10.0.10)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Options (>= 10.0.10)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.10)
- OPCFoundation.NetStandard.Opc.Ua.Di.Server.Debug (>= 2.0.0-preview.2)
- OPCFoundation.NetStandard.Opc.Ua.Robotics.Debug (>= 2.0.0-preview.2)
- OPCFoundation.NetStandard.Opc.Ua.Server.Debug (>= 2.0.0-preview.2)
- System.Collections.Immutable (>= 9.0.0)
- System.Diagnostics.DiagnosticSource (>= 10.0.10)
- System.Formats.Asn1 (>= 10.0.10)
- System.Text.Json (>= 10.0.10)
- System.Threading.Channels (>= 10.0.10)
- System.Threading.RateLimiting (>= 10.0.10)
-
net9.0
- BitFaster.Caching (>= 2.6.0)
- Microsoft.Bcl.TimeProvider (>= 10.0.10)
- Microsoft.Extensions.Configuration (>= 10.0.10)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.10)
- Microsoft.Extensions.DependencyInjection (>= 10.0.10)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Diagnostics (>= 10.0.10)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Http (>= 10.0.10)
- Microsoft.Extensions.Logging (>= 10.0.10)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Options (>= 10.0.10)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.10)
- OPCFoundation.NetStandard.Opc.Ua.Di.Server.Debug (>= 2.0.0-preview.2)
- OPCFoundation.NetStandard.Opc.Ua.Robotics.Debug (>= 2.0.0-preview.2)
- OPCFoundation.NetStandard.Opc.Ua.Server.Debug (>= 2.0.0-preview.2)
- System.Diagnostics.DiagnosticSource (>= 10.0.10)
- System.Formats.Asn1 (>= 10.0.10)
- System.Text.Json (>= 10.0.10)
- System.Threading.Channels (>= 10.0.10)
- System.Threading.RateLimiting (>= 10.0.10)
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.0-preview.2 | 46 | 8/24/2026 |