From 1bf623491386d2bcd902635e1aedbf426f1aa30b Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Tue, 14 Dec 2021 09:33:13 +0100 Subject: [PATCH] Fix filtraggio anche x eventi MTConnect --- IOB-WIN-NEXT/IobMTC.cs | 53 +++++++++++++++++++++++++++--------------- 1 file changed, 34 insertions(+), 19 deletions(-) diff --git a/IOB-WIN-NEXT/IobMTC.cs b/IOB-WIN-NEXT/IobMTC.cs index 67b47fcb..2e99bd62 100644 --- a/IOB-WIN-NEXT/IobMTC.cs +++ b/IOB-WIN-NEXT/IobMTC.cs @@ -237,10 +237,21 @@ namespace IOB_WIN_NEXT // verifico se salvare bool changed = checkSaveItem(dataItem); // cerco se non sia un dato filtrato in FLUXLOG... - - if (changed || forceSend) + // cerco se non sia un dato filtrato in FLUXLOG... + bool isFiltered = mtcParams.fluxLogVeto.Contains(dataItem.DataItemId); + if (isFiltered) { - accodaFLog(sVal, qEncodeFLog(time2, descr, dataItem.CDATA)); + if (isVerboseLog) + { + lgInfo($"NON ACCODATO sample per {dataItem.DataItemId} poiché trovato VETO in fluxLogVeto", false); + } + } + else + { + if (changed || forceSend) + { + accodaFLog(sVal, qEncodeFLog(time2, descr, dataItem.CDATA)); + } } } } @@ -318,22 +329,19 @@ namespace IOB_WIN_NEXT * B2: pzCount * B3: allarme * B4: manuale - * B5: emergenza + * B5: emergenza (dipende da state machine se riportare 1 = armata/premuta, vedere conf mtcParams.emergencyArmedTrue) ----------------------------------------------------- */ // Controllo booleano PING e POWERON... string currPowerOn = getDataItemValue(mtcParams.condPowerOn.keyName); // se valido il check ping lo eseguo... altrimenti lo do x buono - bool checkPing = !mtcParams.pingAsPowerOn; - if (!checkPing) - { - checkPing = (testPingMachine == IPStatus.Success); - } + bool isPingOk = (testPingMachine == IPStatus.Success); + // verifico da target value richiesto... bool checkPowerOn = (currPowerOn == mtcParams.condPowerOn.targetValue); // bit 0 (poweron) imposto a 1 SE pingo o PowerOn=="ON"... - B_input = (checkPing || checkPowerOn) ? 1 : 0; + B_input = ((isPingOk && mtcParams.pingAsPowerOn) || checkPowerOn) ? 1 : 0; // variabili RUN... string currRun = getDataItemValue(mtcParams.keyRunMode); @@ -358,11 +366,6 @@ namespace IOB_WIN_NEXT B_input += (1 << 1); } } - // emergenza premuta = 1 - else if (hasEStopTriggered && !mtcParams.emergencyArmedTrue) - { - B_input += (1 << 5); - } // se ho almeno 1 allarme E NON SONO IN AUTO --> ALARM! else if (hasError) { @@ -374,11 +377,23 @@ namespace IOB_WIN_NEXT B_input += (1 << 4); } - - // emergenza armata = 1 - if (!hasEStopTriggered && mtcParams.emergencyArmedTrue) + // emergenza armata da riportare con bit True/ 1 + if (mtcParams.emergencyArmedTrue) { - B_input += (1 << 5); + //se NON premuta lazo il bit + if (!hasEStopTriggered) + { + B_input += (1 << 5); + } + } + // emergenza armata da riportare come False/0 (!mtcParams.emergencyArmedTrue) + else + { + // se premuta alzo il bit... + if (hasEStopTriggered) + { + B_input += (1 << 5); + } } DateTime adesso = DateTime.Now;