diff --git a/IOB-UT-NEXT/ToMapo.cs b/IOB-UT-NEXT/ToMapo.cs index 53f48f6c..7516a485 100644 --- a/IOB-UT-NEXT/ToMapo.cs +++ b/IOB-UT-NEXT/ToMapo.cs @@ -713,7 +713,7 @@ namespace IOB_UT_NEXT /// /// Numero massimo di letture null prima di disconnettere il client /// - public int maxNullRead { get; set; } = 1000; + public int MaxNullRead { get; set; } = 1000; /// /// Base del namespace da mascherare in invio OPC diff --git a/IOB-WIN-NEXT/App.config b/IOB-WIN-NEXT/App.config index f83fb883..a8e80481 100644 --- a/IOB-WIN-NEXT/App.config +++ b/IOB-WIN-NEXT/App.config @@ -183,6 +183,14 @@ + + + + + + + + diff --git a/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj b/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj index 128db3ec..10ad323e 100644 --- a/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj +++ b/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj @@ -101,6 +101,9 @@ ..\packages\Portable.BouncyCastle.1.9.0\lib\net40\BouncyCastle.Crypto.dll + + ..\packages\BouncyCastle.Cryptography.2.4.0\lib\net461\BouncyCastle.Cryptography.dll + ..\EgwProxy.MultiCncLib\ExtLib\CndexLinkDotNet.dll @@ -156,8 +159,11 @@ ..\packages\Microsoft.Bcl.AsyncInterfaces.8.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll - - ..\packages\Microsoft.Extensions.Logging.Abstractions.2.1.0\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + + ..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll + + + ..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.32\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll ..\packages\Microsoft.IdentityModel.Abstractions.6.19.0\lib\net461\Microsoft.IdentityModel.Abstractions.dll @@ -194,17 +200,17 @@ ..\packages\OmronFinsTCP.Net.3.0.0.0\lib\net40\OmronFinsTCP.Net.dll - - ..\packages\OPCFoundation.NetStandard.Opc.Ua.Client.1.4.367.75\lib\net462\Opc.Ua.Client.dll + + ..\packages\OPCFoundation.NetStandard.Opc.Ua.Client.1.5.374.126\lib\netstandard2.0\Opc.Ua.Client.dll - - ..\packages\OPCFoundation.NetStandard.Opc.Ua.Configuration.1.4.367.75\lib\net462\Opc.Ua.Configuration.dll + + ..\packages\OPCFoundation.NetStandard.Opc.Ua.Configuration.1.5.374.126\lib\netstandard2.0\Opc.Ua.Configuration.dll - - ..\packages\OPCFoundation.NetStandard.Opc.Ua.Core.1.4.367.75\lib\net462\Opc.Ua.Core.dll + + ..\packages\OPCFoundation.NetStandard.Opc.Ua.Core.1.5.374.126\lib\netstandard2.0\Opc.Ua.Core.dll - - ..\packages\OPCFoundation.NetStandard.Opc.Ua.Security.Certificates.1.4.367.75\lib\net462\Opc.Ua.Security.Certificates.dll + + ..\packages\OPCFoundation.NetStandard.Opc.Ua.Security.Certificates.1.5.374.126\lib\netstandard2.0\Opc.Ua.Security.Certificates.dll @@ -231,8 +237,8 @@ True - - ..\packages\System.Diagnostics.DiagnosticSource.4.3.0\lib\net46\System.Diagnostics.DiagnosticSource.dll + + ..\packages\System.Diagnostics.DiagnosticSource.6.0.1\lib\net461\System.Diagnostics.DiagnosticSource.dll ..\packages\System.Diagnostics.Tracing.4.3.0\lib\net462\System.Diagnostics.Tracing.dll @@ -242,8 +248,8 @@ ..\packages\System.Drawing.Common.7.0.0\lib\net462\System.Drawing.Common.dll - - ..\packages\System.Formats.Asn1.6.0.0\lib\net461\System.Formats.Asn1.dll + + ..\packages\System.Formats.Asn1.8.0.1\lib\net462\System.Formats.Asn1.dll ..\packages\System.Globalization.Calendars.4.3.0\lib\net46\System.Globalization.Calendars.dll diff --git a/IOB-WIN-NEXT/IobOpc/OpcUa.cs b/IOB-WIN-NEXT/IobOpc/OpcUa.cs index 5635e0bc..553a3fbc 100644 --- a/IOB-WIN-NEXT/IobOpc/OpcUa.cs +++ b/IOB-WIN-NEXT/IobOpc/OpcUa.cs @@ -594,7 +594,7 @@ namespace IOB_WIN_NEXT.IobOpc lgDebug(sVal); // verifico se salvare - changed = checkSaveValue(MonIt, currVal, true) || forceSend; + changed = checkSaveValue(MonIt, currVal, NotifyValue, true) || forceSend; // cerco se non sia un dato filtrato in FLUXLOG... bool isFiltered = opcUaParams.fluxLogVeto.Contains(uuid); // cerco filtro ANCHE PER solo display name x contains... @@ -999,14 +999,34 @@ namespace IOB_WIN_NEXT.IobOpc return answ; } + /// /// Verifica / Salva valore e restitusice SE sia variato (e quindi da inviare...) /// /// /// - /// + /// + /// /// - protected bool checkSaveValue(Opc.Ua.Client.MonitoredItem dataItem, string NotifyValue, bool sendItemList) + protected bool checkSaveValue(Opc.Ua.Client.MonitoredItem dataItem, string NotifyValue, byte[] RawByteVal, bool SendItemList) + { + bool answ = checkSaveValue(dataItem, NotifyValue, SendItemList); + if(answ) + { + string uuid = calcID($"{dataItem.StartNodeId.Identifier}", $"{dataItem.DisplayName}"); + dataItemMem[uuid].rawByte = RawByteVal; + } + return answ; + } + + /// + /// Verifica / Salva valore e restitusice SE sia variato (e quindi da inviare...) + /// + /// + /// + /// + /// + protected bool checkSaveValue(Opc.Ua.Client.MonitoredItem dataItem, string NotifyValue, bool SendItemList) { bool answ = !enableDataFilter; double oldVal = 0; @@ -1087,7 +1107,7 @@ namespace IOB_WIN_NEXT.IobOpc currDataItem.valueTimestamp = adesso; // aggiungo dataItemMem.Add(uuid, currDataItem); - if (sendItemList) + if (SendItemList) { sendDataItemListToServer(dataItem.StartNodeId); } @@ -1531,7 +1551,7 @@ namespace IOB_WIN_NEXT.IobOpc lgInfo($"Chiamata UAClient con configurazione standard: {application.ApplicationConfiguration.ApplicationName}"); string userName = opcUaParams == null || opcUaParams.Identity == null ? "" : opcUaParams.Identity.UserName; string passwd = opcUaParams == null || opcUaParams.Identity == null ? "" : opcUaParams.Identity.Passwd; - UA_ref = new UAClient(application.ApplicationConfiguration, cIobConf.codIOB, userName, passwd, isVerboseLog, ClientBase.ValidateResponse, opcUaParams.maxNullRead); + UA_ref = new UAClient(application.ApplicationConfiguration, cIobConf.codIOB, userName, passwd, isVerboseLog, ClientBase.ValidateResponse, opcUaParams.MaxNullRead); lgInfo($"Chiamata apertura OpcUa Client: {cIobConf.cncIpAddr}:{port}"); UA_ref.ServerUrl = $"opc.tcp://{cIobConf.cncIpAddr}:{port}"; diff --git a/IOB-WIN-NEXT/IobOpc/OpcUaSiemensRama.cs b/IOB-WIN-NEXT/IobOpc/OpcUaSiemensRama.cs index 9ee79a5b..fdd4a611 100644 --- a/IOB-WIN-NEXT/IobOpc/OpcUaSiemensRama.cs +++ b/IOB-WIN-NEXT/IobOpc/OpcUaSiemensRama.cs @@ -24,6 +24,8 @@ namespace IOB_WIN_NEXT.IobOpc public OpcUaSiemensRama(AdapterForm caller, IobConfiguration IOBConf) : base(caller, IOBConf) { lgInfo("Init OpcUa Siemens x RAMA"); + doByteRead = true; +#if false // inizializzo classe base... if (!string.IsNullOrEmpty(getOptPar("CHANGE_ODL_MODE"))) { @@ -38,7 +40,8 @@ namespace IOB_WIN_NEXT.IobOpc if (!string.IsNullOrEmpty(getOptPar("MAX_ELAPSED_TIME_SEC"))) { int.TryParse(getOptPar("MAX_ELAPSED_TIME_SEC"), out lastCurrentMaxElapsed); - } + } +#endif sendKeyRichiesta = true; } diff --git a/IOB-WIN-NEXT/packages.config b/IOB-WIN-NEXT/packages.config index c8d2b4a7..5b841885 100644 --- a/IOB-WIN-NEXT/packages.config +++ b/IOB-WIN-NEXT/packages.config @@ -1,6 +1,7 @@  + @@ -15,8 +16,9 @@ + - + @@ -29,10 +31,10 @@ - - - - + + + + @@ -46,11 +48,11 @@ - + - + diff --git a/IOB-WIN-NEXT/postBuildTgt.bat b/IOB-WIN-NEXT/postBuildTgt.bat index f510f543..36a4c99c 100644 --- a/IOB-WIN-NEXT/postBuildTgt.bat +++ b/IOB-WIN-NEXT/postBuildTgt.bat @@ -71,7 +71,8 @@ REM ROBOCOPY . \\IOB-WIN-SIMULA\Steamware\IOB-WIN-NEXT-DEB /MIR REM IOBVPN4MACHINE REM ROBOCOPY . \\10.51.90.5\Steamware\IOB-WIN-NEXT-DEB /MIR -ROBOCOPY . \\10.51.90.5\Steamware\IOB-WIN-NEXT-DEB /MIR /log:RobocopyTransfer.log +REM ROBOCOPY . \\10.51.90.5\Steamware\IOB-WIN-NEXT-DEB /MIR /log:RobocopyTransfer.log +ROBOCOPY . \\10.51.90.5\Steamware\IOB-WIN-NEXT-DEB /MIR goto END