From d0c05685f71e9c75e950dfd54048fb28e89e02b8 Mon Sep 17 00:00:00 2001
From: Kimdiego2098 <2248356998@qq.com>
Date: Tue, 31 Oct 2023 10:55:50 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0OPCUAClient=EF=BC=8C=E8=AE=A2?=
=?UTF-8?q?=E9=98=85=E6=A8=A1=E5=BC=8F=E9=80=82=E9=85=8D=20=E5=88=86?=
=?UTF-8?q?=E7=BB=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../OPCUAClient/OPCUAClient.cs | 9 +++++++--
.../OPCUAClient/OPCUAClient.cs | 5 +++--
2 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/framework/Foundation/ThingsGateway.Foundation.Adapter.OPCUA/OPCUAClient/OPCUAClient.cs b/framework/Foundation/ThingsGateway.Foundation.Adapter.OPCUA/OPCUAClient/OPCUAClient.cs
index 121eec622..b59d06a55 100644
--- a/framework/Foundation/ThingsGateway.Foundation.Adapter.OPCUA/OPCUAClient/OPCUAClient.cs
+++ b/framework/Foundation/ThingsGateway.Foundation.Adapter.OPCUA/OPCUAClient/OPCUAClient.cs
@@ -47,7 +47,7 @@ public class OPCUAClient : IDisposable
///
/// 当前保存的变量名称列表
///
- public List Variables = new();
+ public List> Variables = new();
///
/// 当前的变量名称/OPC变量节点
@@ -584,7 +584,12 @@ public class OPCUAClient : IDisposable
//如果是订阅模式,连接时添加订阅组
if (OPCNode.ActiveSubscribe)
- await AddSubscriptionAsync(Guid.NewGuid().ToString(), Variables.ToArray(), OPCNode.LoadType);
+ {
+ foreach (var item in Variables)
+ {
+ await AddSubscriptionAsync(Guid.NewGuid().ToString(), item.ToArray(), OPCNode.LoadType);
+ }
+ }
return m_session;
}
diff --git a/framework/Plugin/ThingsGateway.Plugin.OPCUA/OPCUAClient/OPCUAClient.cs b/framework/Plugin/ThingsGateway.Plugin.OPCUA/OPCUAClient/OPCUAClient.cs
index d1ef207fe..9f06334e7 100644
--- a/framework/Plugin/ThingsGateway.Plugin.OPCUA/OPCUAClient/OPCUAClient.cs
+++ b/framework/Plugin/ThingsGateway.Plugin.OPCUA/OPCUAClient/OPCUAClient.cs
@@ -78,8 +78,9 @@ public class OPCUAClient : CollectBase
public override List LoadSourceRead(List deviceVariables)
{
_deviceVariables = deviceVariables;
- _plc.Variables.AddRange(deviceVariables.Select(a => a.VariableAddress).ToList());
- var dataLists = deviceVariables.ChunkTrivialBetter(driverPropertys.GroupSize);
+ List> dataLists = deviceVariables.ChunkTrivialBetter(driverPropertys.GroupSize);
+ _plc.Variables = new();
+ _plc.Variables.AddRange(dataLists.Select(a => a.Select(a => a.VariableAddress).ToList()).ToList());
var dataResult = new List();
foreach (var variable in dataLists)
{