|
@@ -862,6 +862,7 @@ namespace YSAI.Opc.ua.client
|
|
|
monitoredItem.MonitoringMode = MonitoringMode.Reporting; //采集模式
|
|
monitoredItem.MonitoringMode = MonitoringMode.Reporting; //采集模式
|
|
|
monitoredItem.QueueSize = 0; //队列大小
|
|
monitoredItem.QueueSize = 0; //队列大小
|
|
|
monitoredItem.DiscardOldest = true; //当队列满了是否丢弃早期数据
|
|
monitoredItem.DiscardOldest = true; //当队列满了是否丢弃早期数据
|
|
|
|
|
+ monitoredItem.Handle = this; //分配给被监视项的本地句柄
|
|
|
monitoredItem.Notification += delegate (MonitoredItem monitoredItem, MonitoredItemNotificationEventArgs e) { OnMonitoredItemNotification(monitoredItem, e, item); }; //重写事件添加一个参数
|
|
monitoredItem.Notification += delegate (MonitoredItem monitoredItem, MonitoredItemNotificationEventArgs e) { OnMonitoredItemNotification(monitoredItem, e, item); }; //重写事件添加一个参数
|
|
|
monitoredItems?.Add(monitoredItem); //添加至集合
|
|
monitoredItems?.Add(monitoredItem); //添加至集合
|
|
|
}
|
|
}
|
|
@@ -872,8 +873,8 @@ namespace YSAI.Opc.ua.client
|
|
|
allSubscriptions[Tag].AddItems(monitoredItems);
|
|
allSubscriptions[Tag].AddItems(monitoredItems);
|
|
|
|
|
|
|
|
//修改订阅的参数
|
|
//修改订阅的参数
|
|
|
- allSubscriptions[Tag].KeepAliveCount = (uint)(5 * Nodes.Count); //保活计数
|
|
|
|
|
- allSubscriptions[Tag].LifetimeCount = (uint)(10 * Nodes.Count); //寿命计数
|
|
|
|
|
|
|
+ allSubscriptions[Tag].KeepAliveCount = 10; //保活计数
|
|
|
|
|
+ allSubscriptions[Tag].LifetimeCount = 30; //寿命计数
|
|
|
allSubscriptions[Tag].PublishingEnabled = true;//是否启用发布
|
|
allSubscriptions[Tag].PublishingEnabled = true;//是否启用发布
|
|
|
|
|
|
|
|
//添加订阅
|
|
//添加订阅
|
|
@@ -892,9 +893,10 @@ namespace YSAI.Opc.ua.client
|
|
|
//订阅
|
|
//订阅
|
|
|
Subscription subscription = new Subscription(clientSession?.DefaultSubscription);
|
|
Subscription subscription = new Subscription(clientSession?.DefaultSubscription);
|
|
|
subscription.PublishingInterval = basics.PublishingInterval; //出版间隔
|
|
subscription.PublishingInterval = basics.PublishingInterval; //出版间隔
|
|
|
- subscription.KeepAliveCount = (uint)(5 * Nodes.Count); //保活计数
|
|
|
|
|
- subscription.LifetimeCount = (uint)(10 * Nodes.Count); //寿命计数
|
|
|
|
|
- subscription.MaxNotificationsPerPublish = uint.MaxValue; //每个发布请求的最大通知数
|
|
|
|
|
|
|
+ subscription.KeepAliveCount = 10; //保活计数
|
|
|
|
|
+ subscription.LifetimeCount = 30; //寿命计数
|
|
|
|
|
+ subscription.MaxNotificationsPerPublish = (uint)Nodes.Count; //每个发布请求的最大通知数
|
|
|
|
|
+ subscription.MaxMessageCount = Nodes.Count; //最大的消息数据量
|
|
|
subscription.Priority = 1; //分配给订阅的优先级
|
|
subscription.Priority = 1; //分配给订阅的优先级
|
|
|
subscription.DisplayName = Tag; //订阅的显示名称
|
|
subscription.DisplayName = Tag; //订阅的显示名称
|
|
|
subscription.TimestampsToReturn = TimestampsToReturn.Both; //与通知消息一起返回的时间戳
|
|
subscription.TimestampsToReturn = TimestampsToReturn.Both; //与通知消息一起返回的时间戳
|
|
@@ -917,6 +919,7 @@ namespace YSAI.Opc.ua.client
|
|
|
monitoredItem.MonitoringMode = MonitoringMode.Reporting; //采集模式
|
|
monitoredItem.MonitoringMode = MonitoringMode.Reporting; //采集模式
|
|
|
monitoredItem.QueueSize = 0; //队列大小
|
|
monitoredItem.QueueSize = 0; //队列大小
|
|
|
monitoredItem.DiscardOldest = true; //当队列满了是否丢弃早期数据
|
|
monitoredItem.DiscardOldest = true; //当队列满了是否丢弃早期数据
|
|
|
|
|
+ monitoredItem.Handle = this; //分配给被监视项的本地句柄
|
|
|
monitoredItem.Notification += delegate (MonitoredItem monitoredItem, MonitoredItemNotificationEventArgs e) { OnMonitoredItemNotification(monitoredItem, e, item); }; //重写事件添加一个参数
|
|
monitoredItem.Notification += delegate (MonitoredItem monitoredItem, MonitoredItemNotificationEventArgs e) { OnMonitoredItemNotification(monitoredItem, e, item); }; //重写事件添加一个参数
|
|
|
monitoredItems?.Add(monitoredItem); //添加至集合
|
|
monitoredItems?.Add(monitoredItem); //添加至集合
|
|
|
}
|
|
}
|
|
@@ -1176,7 +1179,6 @@ namespace YSAI.Opc.ua.client
|
|
|
catch (Exception ex)
|
|
catch (Exception ex)
|
|
|
{
|
|
{
|
|
|
OnEventHandler(this, new EventResult(false, $"[ {Steps.订阅通知} ]异常:{ex.Message}"));
|
|
OnEventHandler(this, new EventResult(false, $"[ {Steps.订阅通知} ]异常:{ex.Message}"));
|
|
|
-
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|