跳到主要内容

Subscription 订阅

OpcUaSubscription 是订阅容器, 管理一批 MonitoredItem (MI), 提供 DataChanged 事件.

子页跳转

一分钟速览

// 创建
using var sub = ua.CreateSubscription(publishingIntervalMs: 500);

// 数据变更回调
sub.DataChanged += (s, e) =>
Console.WriteLine($"{e.NodeId} = {e.ValueString} ({e.Status})");

// 添加 MI
sub.Add("ns=2;s=Counter");
sub.Add("ns=2;s=Temperature");

// 批量添加
var nodes = Enumerable.Range(1, 100).Select(i => $"ns=2;s=T{i}").ToList();
var results = sub.AddMany(nodes);

// 改单个 MI 的采样间隔
sub.ModifyItem(handle, samplingIntervalMs: 100);

// 暂停 / 恢复采集
sub.SetMode(handle, MonitoringMode.Disabled);
sub.SetMode(handle, MonitoringMode.Reporting);

// 移除
sub.Remove(handle);

订阅生命周期事件

ua.Events.ServerEvent += (s, e) =>
{
if (e.Category == OpcUaEventCategory.SubscriptionCreated) { /* ... */ }
if (e.Category == OpcUaEventCategory.MonitoredItemAdded) { /* ... */ }
if (e.Category == OpcUaEventCategory.SubscriptionLost) { /* ... */ }
};

详见 Session 事件.

下一步