From d0190024549ae22d869c892c9cf047fe3387915f Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Tue, 31 May 2022 18:00:12 +0200 Subject: [PATCH] Update Adapters ICOEL --- IOB-WIN-NEXT/IobIcoelDb.cs | 5 +++- IOB-WIN-NEXT/IobIcoelSoap.cs | 42 +++++++++++++++++++++--------- IOB-WIN-NEXT/IobOpcUaOmronIcoel.cs | 3 ++- 3 files changed, 35 insertions(+), 15 deletions(-) diff --git a/IOB-WIN-NEXT/IobIcoelDb.cs b/IOB-WIN-NEXT/IobIcoelDb.cs index 5532c618..3bb11b86 100644 --- a/IOB-WIN-NEXT/IobIcoelDb.cs +++ b/IOB-WIN-NEXT/IobIcoelDb.cs @@ -141,8 +141,11 @@ namespace IOB_WIN_NEXT if (dbProxy != null && elencoSyncState != null && elencoSyncState.Count > 0) { - B_input = 3; + B_input += (1 << 1); } + + // accodo NON emergenza + B_input += (1 << 7); } else { diff --git a/IOB-WIN-NEXT/IobIcoelSoap.cs b/IOB-WIN-NEXT/IobIcoelSoap.cs index 399c294c..19e35d1b 100644 --- a/IOB-WIN-NEXT/IobIcoelSoap.cs +++ b/IOB-WIN-NEXT/IobIcoelSoap.cs @@ -67,6 +67,11 @@ namespace IOB_WIN_NEXT return base.executeTasks(task2exe); } + /// + /// Dizionario parametri correnti + /// + protected Dictionary perfParamDict { get; set; } = new Dictionary(); + /// /// Recupero dati dinamici... /// @@ -75,7 +80,7 @@ namespace IOB_WIN_NEXT // valore non presente in vers default... se gestito fare override Dictionary outVal = new Dictionary(); // recupero da libreria il dizionario dei performance parameters... - var perfParamDict = IcoelSizer.GetPerfMeters(); + perfParamDict = IcoelSizer.GetPerfMeters(); lgTrace("SOAP: effettuata chiamata IcoelSizer.GetPerfMeters()"); foreach (var item in perfParamDict) { @@ -111,11 +116,6 @@ namespace IOB_WIN_NEXT // se devo inviare impacchetto dati if (doSend) { -#if false - // accodo per invio... - string rawBatch = JsonConvert.SerializeObject(currBatch); - accodaRawData(IOB_UT_NEXT.rawTransfType.IcoelBatch, rawBatch); -#endif accodaRawData(rawTransfType.IcoelBatch, currBatch); currBatchList = currBatch; } @@ -142,22 +142,39 @@ namespace IOB_WIN_NEXT if (currBatch != null) { currBatchList = currBatch; -#if false - // accodo invio! - string rawBatch = JsonConvert.SerializeObject(currBatch); - accodaRawData(IOB_UT_NEXT.rawTransfType.IcoelBatch, currBatch); -#endif accodaRawData(rawTransfType.IcoelBatch, currBatch); } } else { + //se i perf parameters mi danno valire > 0 x quantità frutta... + if (perfParamDict != null && perfParamDict.Count > 0) + { + if (perfParamDict.ContainsKey("VelFruttiMinuto")) + { + if (perfParamDict["VelFruttiMinuto"] > 0) + { + B_input += (1 << 1); + } + // metto manuale + else + { + B_input += (1 << 4); + } + } + } + + //usato altro criterio x stato verde da vel frutti minuto +#if false // se ho batch NON chiusi (data = minValue) allora lavora if (currBatchList[1].EndTime == DateTime.MinValue || currBatchList[1].EndTime == DateTime.MinValue) { B_input = 3; - } + } +#endif } + // accodo NON emergenza + B_input += (1 << 7); } else { @@ -270,7 +287,6 @@ namespace IOB_WIN_NEXT { var varietyData = IcoelSizer.GetLayoutForVarietyList(varList); lgTrace("SOAP: effettuata chiamata IcoelSizer.GetLayoutForVarietyList()"); - // invio dai al server IO } lastReadPLC = DateTime.Now; diff --git a/IOB-WIN-NEXT/IobOpcUaOmronIcoel.cs b/IOB-WIN-NEXT/IobOpcUaOmronIcoel.cs index 91803e95..bc31f488 100644 --- a/IOB-WIN-NEXT/IobOpcUaOmronIcoel.cs +++ b/IOB-WIN-NEXT/IobOpcUaOmronIcoel.cs @@ -415,7 +415,7 @@ namespace IOB_WIN_NEXT B_input = powerOnOk ? 1 : 0; // decodifico da currData - if (currData.Varie.InEmergenza) + if (!currData.Varie.InEmergenza) { B_input += (1 << 7); } @@ -427,6 +427,7 @@ namespace IOB_WIN_NEXT { B_input += (1 << 3); } + } // controllo se sono poweroff e se non ho dati buoni da > 2 minuti --> disconnetto