From 64cad94cd1ad999b86547b418d103fa6f11a6359 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Tue, 4 Mar 2025 08:32:17 +0100 Subject: [PATCH] Ultime modifiche sposatmenti chaivi FANUC + pulizia, test OK in jetco standard --- IOB-UT-NEXT/Config/Base/CounterDto.cs | 15 +++++ IOB-UT-NEXT/Config/Base/IobDto.cs | 5 ++ IOB-UT-NEXT/Config/IobConfTree.cs | 10 ++- IOB-WIN-FANUC/App.config | 5 -- IOB-WIN-FORM/AdapterForm.cs | 36 ----------- IOB-WIN-FORM/Iob/BaseObj.cs | 53 ---------------- IOB-WIN-FORM/Iob/Generic.cs | 90 +++++++-------------------- 7 files changed, 52 insertions(+), 162 deletions(-) diff --git a/IOB-UT-NEXT/Config/Base/CounterDto.cs b/IOB-UT-NEXT/Config/Base/CounterDto.cs index f46d523e..b9e4eda3 100644 --- a/IOB-UT-NEXT/Config/Base/CounterDto.cs +++ b/IOB-UT-NEXT/Config/Base/CounterDto.cs @@ -31,5 +31,20 @@ namespace IOB_UT_NEXT.Config.Base /// public bool ResetOnStopSetup { get; set; } = false; + /// + /// Abilita invio di più pezzi alla volta (IdxEv: 120) + /// + public bool EnabSendPzcBlock { get; set; } = true; + + /// + /// Numero minimo pezzi x invio in blocco + /// + public int SendPzcBlockMin { get; set; } = 0; + + /// + /// Numero massimo x invio in blocco + /// + public int SendPzcBlockMax { get; set; } = 100; + } } diff --git a/IOB-UT-NEXT/Config/Base/IobDto.cs b/IOB-UT-NEXT/Config/Base/IobDto.cs index 96f70479..904349ce 100644 --- a/IOB-UT-NEXT/Config/Base/IobDto.cs +++ b/IOB-UT-NEXT/Config/Base/IobDto.cs @@ -50,6 +50,11 @@ namespace IOB_UT_NEXT.Config.Base /// public bool DisabWDST { get; set; } = true; + /// + /// Tempo massimo di WatchDog dopo cui inviare un segnale x evitare C101 + /// + public int WatchDogSec { get; set; } = 60; + /// /// Abilita salvataggio coda eventi su redis (ritentiva) /// diff --git a/IOB-UT-NEXT/Config/IobConfTree.cs b/IOB-UT-NEXT/Config/IobConfTree.cs index dfa47db1..1d342778 100644 --- a/IOB-UT-NEXT/Config/IobConfTree.cs +++ b/IOB-UT-NEXT/Config/IobConfTree.cs @@ -112,7 +112,8 @@ namespace IOB_UT_NEXT.Config EnabRedisQue = bool.Parse(fIni.ReadString("IOB", "EnableRedisQueue", "true")), MinDeltaSec = fIni.ReadInteger("IOB", "MinDeltaSec", 6), RelVers = $"{System.Reflection.Assembly.GetExecutingAssembly().GetName().Version}", - WaitRecMsec = Convert.ToInt32(fIni.ReadString("OPTPAR", "WAIT_REC_MSEC", "90000")) + WaitRecMsec = Convert.ToInt32(fIni.ReadString("OPTPAR", "WAIT_REC_MSEC", "90000")), + DisabWDST = bool.Parse(fIni.ReadString("OPTPAR", "DISABLE_SEND_WDST", "true")) }; // da togliere da conf app... int uiTimer = utils.CRI("timerIntMs"); @@ -137,6 +138,7 @@ namespace IOB_UT_NEXT.Config }; exclOptPar.Add("WAIT_REC_MSEC"); + exclOptPar.Add("DISABLE_SEND_WDST"); exclOptPar.Add("timerIntMs"); // tipo adapter// verifico tipo adapter @@ -206,11 +208,17 @@ namespace IOB_UT_NEXT.Config newConfObj.Counters.EnableSetPzReq = bool.Parse(fIni.ReadString("OPTPAR", "ENABLE_PZ_REQ", "false")); newConfObj.Counters.ResetOnStartSetup = bool.Parse(fIni.ReadString("OPTPAR", "ENABLE_PZ_RESET", "false")); newConfObj.Counters.ResetOnStopSetup = bool.Parse(fIni.ReadString("OPTPAR", "ENABLE_PZ_RESET_stopSetup", "false")); + newConfObj.Counters.EnabSendPzcBlock = bool.Parse(fIni.ReadString("OPTPAR", "ENABLE_SEND_PZC_BLOCK", "false")); + newConfObj.Counters.SendPzcBlockMin = int.Parse(fIni.ReadString("OPTPAR", "MIN_SEND_PZC_BLOCK", "0")); + newConfObj.Counters.SendPzcBlockMax = int.Parse(fIni.ReadString("OPTPAR", "MAX_SEND_PZC_BLOCK", "100")); exclOptPar.Add("ENABLE_PZ_CNT"); exclOptPar.Add("ENABLE_PZ_REQ"); exclOptPar.Add("ENABLE_PZ_RESET"); exclOptPar.Add("ENABLE_PZ_RESET_stopSetup"); + exclOptPar.Add("ENABLE_SEND_PZC_BLOCK"); + exclOptPar.Add("MIN_SEND_PZC_BLOCK"); + exclOptPar.Add("MAX_SEND_PZC_BLOCK"); // gestione ODL diff --git a/IOB-WIN-FANUC/App.config b/IOB-WIN-FANUC/App.config index 9710e976..d41df05e 100644 --- a/IOB-WIN-FANUC/App.config +++ b/IOB-WIN-FANUC/App.config @@ -36,7 +36,6 @@ - @@ -51,7 +50,6 @@ - @@ -61,7 +59,6 @@ - @@ -87,8 +84,6 @@ - - diff --git a/IOB-WIN-FORM/AdapterForm.cs b/IOB-WIN-FORM/AdapterForm.cs index b5a73bec..a005676a 100644 --- a/IOB-WIN-FORM/AdapterForm.cs +++ b/IOB-WIN-FORM/AdapterForm.cs @@ -947,13 +947,6 @@ namespace IOB_WIN_FORM #region Protected Fields -#if false - /// - /// contatore veloce - /// - protected int fastCount; -#endif - /// /// Data-Ora prima apertura FORM... /// @@ -974,13 +967,6 @@ namespace IOB_WIN_FORM /// protected DateTime lastStartTry; -#if false - /// - /// contatore normale - /// - protected int normCount; -#endif - /// /// Oggetto connessioen REDIS /// @@ -1001,18 +987,6 @@ namespace IOB_WIN_FORM /// protected bool sendStartFLog = false; -#if false - /// - /// contatore lento - /// - protected int slowCount; - - /// - /// contatore sync allarmi - /// - protected int verySlowCount; -#endif - /// /// Temnpo attesa std in MS /// @@ -1570,16 +1544,6 @@ namespace IOB_WIN_FORM } // controllo TUTTE le scadenze... checkScad(); -#if false - // check esecuzione FastTask - checkScad(gatherCycle.HF); - // check esecuzione NormTask - checkScad(gatherCycle.MF); - // check esecuzione SlowTask - checkScad(gatherCycle.LF); - // check esecuzione AlarmSync - checkScad(gatherCycle.VLF); -#endif if (utils.CRI("waitEndCycle") > 0) { Thread.Sleep(utils.CRI("waitEndCycle")); diff --git a/IOB-WIN-FORM/Iob/BaseObj.cs b/IOB-WIN-FORM/Iob/BaseObj.cs index da14b342..6522e804 100644 --- a/IOB-WIN-FORM/Iob/BaseObj.cs +++ b/IOB-WIN-FORM/Iob/BaseObj.cs @@ -24,15 +24,6 @@ namespace IOB_WIN_FORM.Iob /// public void lgError(string message, params object[] args) { -#if false - try - { - } - catch - { - readErrorCurr++; - } -#endif bool doVeto = checkLogVeto(2, ref message); // se non ho veto --> loggo if (!doVeto) @@ -377,49 +368,5 @@ namespace IOB_WIN_FORM.Iob #endregion Protected Methods -#if false - /// - /// Verifica se ci sia veto log attivo e gestisce casistiche - /// - /// - /// - /// - protected bool checkLogVeto(int vetoSec, ref string message) - { - //verifico SE si debba fare log, altrimenti metto in coda... - bool doVeto = true; - DateTime adesso = DateTime.Now; - if (VetoLog.ContainsKey(message)) - { - // conteggio num veto a +1... - if (VetoLogCount.ContainsKey(message)) - { - VetoLogCount[message]++; - } - else - { - VetoLogCount.Add(message, 1); - } - // controllo scadenza, quando superata soglia aggiorno messaggio con {n} x {messaggio} - if (adesso.Subtract(VetoLog[message]).TotalSeconds > vetoSec) - { - doVeto = false; - string newMessage = $"{VetoLogCount[message]} x {message}"; - VetoLog.Remove(message); - VetoLogCount.Remove(message); - message = newMessage; - } - } - else - { - // primo --> loggo - doVeto = false; - VetoLog.Add(message, adesso.AddSeconds(vetoSec)); - VetoLogCount.Add(message, 0); - } - // restituisco esito! - return doVeto; - } -#endif } } \ No newline at end of file diff --git a/IOB-WIN-FORM/Iob/Generic.cs b/IOB-WIN-FORM/Iob/Generic.cs index 5168c603..953c8c59 100644 --- a/IOB-WIN-FORM/Iob/Generic.cs +++ b/IOB-WIN-FORM/Iob/Generic.cs @@ -3615,13 +3615,6 @@ namespace IOB_WIN_FORM.Iob /// protected bool enablePzCountByApp = true; -#if false - /// - /// Boolean x indicare contapezzi abilitato forzatamente da IOB - /// - protected bool enablePzCountByIob = true; -#endif - /// /// Abilitazione gestione slow data /// @@ -5490,24 +5483,13 @@ namespace IOB_WIN_FORM.Iob } else { + string currPar = ""; lgInfo("loadMemConf.01"); lgInfoStartup("BEGIN loadMemConf"); // variabili x gestione send contapezzi in blocco - string currPar = getOptPar("ENABLE_SEND_PZC_BLOCK"); - if (!string.IsNullOrEmpty(currPar)) - { - bool.TryParse(currPar, out enableSendPzCountBlock); - // se abilitato leggo num pezzi da reinviare in blocco - if (enableSendPzCountBlock) - { - int.TryParse(getOptPar("MAX_SEND_PZC_BLOCK"), out maxSendPzCountBlock); - int.TryParse(getOptPar("MIN_SEND_PZC_BLOCK"), out minSendPzCountBlock); - } - } - else - { - lgError("loadMemConf: parametro ENABLE_SEND_PZC_BLOCK non trovato, verificare anche MAX_SEND_PZC_BLOCK e MIN_SEND_PZC_BLOCK"); - } + enableSendPzCountBlock = IOBConfFull.Counters.EnabSendPzcBlock; + minSendPzCountBlock = IOBConfFull.Counters.SendPzcBlockMin; + maxSendPzCountBlock = IOBConfFull.Counters.SendPzcBlockMax; lgInfo("loadMemConf.02"); currPar = getOptPar("MIN_RESP_TIME_MS"); if (!string.IsNullOrEmpty(currPar)) @@ -5527,13 +5509,7 @@ namespace IOB_WIN_FORM.Iob } // abilitazione invio WDST disabilitazione controllo range valori DynData - if (!string.IsNullOrEmpty(getOptPar("DISABLE_SEND_WDST"))) - { - bool checkDisWdst = false; - bool.TryParse(getOptPar("DISABLE_SEND_WDST"), out checkDisWdst); - disableWdst = checkDisWdst; - } - + disableWdst = IOBConfFull.General.DisabWDST; // disabilitazione controllo range valori DynData if (!string.IsNullOrEmpty(getOptPar("disDynDataRangeCheck"))) { @@ -7217,47 +7193,27 @@ namespace IOB_WIN_FORM.Iob if (checkServerAlive) { bool iobOk = false; - if (utils.CRB("sendDataByThread")) - { - Task taskCheck = Task.Run(() => iobOk = checkIobEnabled); - } - else - { - iobOk = checkIobEnabled; - } + iobOk = checkIobEnabled; // verifico SE posso inviare dati if (iobOk) { currDispData.semOut = Semaforo.SV; - // verificare come gestire il task secondario senza interferenza (chiamate - // update su FORM da thread secondari danno errori) - if (utils.CRB("sendDataByThread")) - { - // invio con thread separato... - Task taskSigIN = Task.Run(() => svuotaCodaSignIN()); - Task taskFLog = Task.Run(() => svuotaCodaFLog()); - Task taskRawTransf = Task.Run(() => svuotaCodaRawTransf()); - Task taskULog = Task.Run(() => svuotaCodaULog()); - } - else - { - // gestione queue SignalIN (invio, display) - svuotaCodaSignIN(); - currDispData.counter = contapezziIOB; - raiseRefresh(currDispData); - // provo a svuotare coda contapezzi - svuotaCodaContapezzi(); - currDispData.counter = contapezziIOB; - raiseRefresh(currDispData); - // gestione queue FluxLog (invio, display) - svuotaCodaFLog(); - // coda RawTransf - svuotaCodaRawTransf(); - // coda UserLog - svuotaCodaULog(); - // refresh - raiseRefresh(currDispData); - } + // gestione queue SignalIN (invio, display) + svuotaCodaSignIN(); + currDispData.counter = contapezziIOB; + raiseRefresh(currDispData); + // provo a svuotare coda contapezzi + svuotaCodaContapezzi(); + currDispData.counter = contapezziIOB; + raiseRefresh(currDispData); + // gestione queue FluxLog (invio, display) + svuotaCodaFLog(); + // coda RawTransf + svuotaCodaRawTransf(); + // coda UserLog + svuotaCodaULog(); + // refresh + raiseRefresh(currDispData); // se arrivo è tutto ok... currSendErrors = 0; } @@ -8380,7 +8336,7 @@ namespace IOB_WIN_FORM.Iob { bool sendOnMachineOff = false; // controllo se è passato oltre watchdog e non ho inviato nulla --> RE-INVIO (ultimo inviato)!!!! - if (DateTime.Now.Subtract(lastWatchDog).TotalSeconds > utils.CRI("watchdogMaxSec")) + if (DateTime.Now.Subtract(lastWatchDog).TotalSeconds > IOBConfFull.General.WatchDogSec) { string wdStatus = "elapsed"; string sVal = string.Format("[WDST]{0}", wdStatus);