From 30e85e66272eee3bb3994965273f2e18f9beaeed Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Tue, 14 Dec 2021 15:29:17 +0100 Subject: [PATCH] Aggiunta stack trace su errore + condizione run esclusa se vuota --- IOB-WIN-NEXT/IobOpcUa.cs | 30 ++++++++++++++++++++---------- IOB-WIN-NEXT/IobOpcUaEwon.cs | 7 +++++-- 2 files changed, 25 insertions(+), 12 deletions(-) diff --git a/IOB-WIN-NEXT/IobOpcUa.cs b/IOB-WIN-NEXT/IobOpcUa.cs index 4849c9c3..a7558470 100644 --- a/IOB-WIN-NEXT/IobOpcUa.cs +++ b/IOB-WIN-NEXT/IobOpcUa.cs @@ -500,7 +500,6 @@ namespace IOB_WIN_NEXT private void UA_ref_eh_MonItChange(object sender, opcUaMonitItemChange e) { checkAndSend(e.CurrMonitoredItem, $"{e.CurrNotify.Value}", false); - lastCurrent = DateTime.Now; } @@ -548,19 +547,30 @@ namespace IOB_WIN_NEXT // cerco nell'elenco delle condizioni che indicano lavora se sono ok faccio +1 conteggio...... foreach (var item in checkList) { - if (getDataItemValue(item.keyName) == item.targetValue) + if (string.IsNullOrEmpty(item.keyName)) { - numCondOk++; + lgError($"Attenzione: item vuoto in checkMultiCondition{Environment.NewLine}StackTrace: {Environment.StackTrace}"); + } + else + { + if (getDataItemValue(item.keyName) == item.targetValue) + { + numCondOk++; + } } } + if (checkMode == boolCheckMode.AND) + { + answ = (numCond == numCondOk); + } + else if (checkMode == boolCheckMode.OR) + { + answ = numCondOk > 0; + } } - if (checkMode == boolCheckMode.AND) + else { - answ = (numCond == numCondOk); - } - else if (checkMode == boolCheckMode.OR) - { - answ = numCondOk > 0; + answ = true; } return answ; } @@ -864,7 +874,7 @@ namespace IOB_WIN_NEXT string answ = ""; if (string.IsNullOrEmpty(diKey)) { - lgError("Attenzione: richiesta chiave vuota in getDataItemValue"); + lgError($"Attenzione: richiesta chiave vuota in getDataItemValue{Environment.NewLine}StackTrace: {Environment.StackTrace}"); } else { diff --git a/IOB-WIN-NEXT/IobOpcUaEwon.cs b/IOB-WIN-NEXT/IobOpcUaEwon.cs index 5196459c..3b6b6d7a 100644 --- a/IOB-WIN-NEXT/IobOpcUaEwon.cs +++ b/IOB-WIN-NEXT/IobOpcUaEwon.cs @@ -70,7 +70,7 @@ namespace IOB_WIN_NEXT // se valido il check ping lo eseguo... altrimenti lo do x buono bool checkPing = !opcUaParams.pingAsPowerOn; - string currRun = ""; + string currRun = "N.A."; if (!checkPing) { checkPing = (testPingMachine == IPStatus.Success); @@ -83,7 +83,10 @@ namespace IOB_WIN_NEXT B_input = powerOnOk ? 1 : 0; // variabili RUN... - currRun = getDataItemValue(opcUaParams.keyRunMode); + if (!string.IsNullOrEmpty(opcUaParams.keyRunMode)) + { + currRun = getDataItemValue(opcUaParams.keyRunMode); + } // salvo running come = working... isRunning = isWorking;