瀏覽代碼

OPCUA修改

Shun 2 年之前
父節點
當前提交
0325c82c5f
共有 2 個文件被更改,包括 9 次插入11 次删除
  1. 8 6
      src/YSAI.DAQ/YSAI.Opc/ua/client/OpcUaClientOperate.cs
  2. 1 5
      src/YSAI.DAQ/YSAI.Test.Console/Program.cs

+ 8 - 6
src/YSAI.DAQ/YSAI.Opc/ua/client/OpcUaClientOperate.cs

@@ -862,6 +862,7 @@ namespace YSAI.Opc.ua.client
                             monitoredItem.MonitoringMode = MonitoringMode.Reporting;  //采集模式
                             monitoredItem.QueueSize = 0;  //队列大小
                             monitoredItem.DiscardOldest = true;  //当队列满了是否丢弃早期数据
+                            monitoredItem.Handle = this;  //分配给被监视项的本地句柄
                             monitoredItem.Notification += delegate (MonitoredItem monitoredItem, MonitoredItemNotificationEventArgs e) { OnMonitoredItemNotification(monitoredItem, e, item); };  //重写事件添加一个参数
                             monitoredItems?.Add(monitoredItem);  //添加至集合
                         }
@@ -872,8 +873,8 @@ namespace YSAI.Opc.ua.client
                             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;//是否启用发布
 
                             //添加订阅
@@ -892,9 +893,10 @@ namespace YSAI.Opc.ua.client
                         //订阅
                         Subscription subscription = new Subscription(clientSession?.DefaultSubscription);
                         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.DisplayName = Tag;  //订阅的显示名称
                         subscription.TimestampsToReturn = TimestampsToReturn.Both;  //与通知消息一起返回的时间戳
@@ -917,6 +919,7 @@ namespace YSAI.Opc.ua.client
                             monitoredItem.MonitoringMode = MonitoringMode.Reporting;  //采集模式
                             monitoredItem.QueueSize = 0;  //队列大小
                             monitoredItem.DiscardOldest = true;  //当队列满了是否丢弃早期数据
+                            monitoredItem.Handle = this;  //分配给被监视项的本地句柄
                             monitoredItem.Notification += delegate (MonitoredItem monitoredItem, MonitoredItemNotificationEventArgs e) { OnMonitoredItemNotification(monitoredItem, e, item); };  //重写事件添加一个参数
                             monitoredItems?.Add(monitoredItem);  //添加至集合
                         }
@@ -1176,7 +1179,6 @@ namespace YSAI.Opc.ua.client
                             catch (Exception ex)
                             {
                                 OnEventHandler(this, new EventResult(false, $"[ {Steps.订阅通知} ]异常:{ex.Message}"));
-
                             }
                         }
                     }

+ 1 - 5
src/YSAI.DAQ/YSAI.Test.Console/Program.cs

@@ -9,7 +9,7 @@ using YSAI.Unility;
 RabbitMQOperate rabbitMQOperate = RabbitMQOperate.Instance(new RabbitMQData.Basics()
 {
     ExChangeName = "exchang200",
-    HostName = "192.168.2.200",
+    HostName = "192.168.2.221",
     UserName = "ys",
     Password = "ys123456",
     Port = 5672,
@@ -17,12 +17,8 @@ RabbitMQOperate rabbitMQOperate = RabbitMQOperate.Instance(new RabbitMQData.Basi
 });
 
 OperateResult operateResult = rabbitMQOperate.On();
-Console.WriteLine(operateResult.ToJson());
-
-
 rabbitMQOperate.OnEvent += RabbitMQOperate_OnEvent;
 operateResult = rabbitMQOperate.Consume("test");
-Console.WriteLine(operateResult.ToJson());
 
 while (true)
 {