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) {