diff --git a/IOB-UT-NEXT/Iob/BaseObj.cs b/IOB-UT-NEXT/Iob/BaseObj.cs index dd7d7ca8..5ad36184 100644 --- a/IOB-UT-NEXT/Iob/BaseObj.cs +++ b/IOB-UT-NEXT/Iob/BaseObj.cs @@ -324,11 +324,6 @@ namespace IOB_UT_NEXT.Iob /// protected int adpPortNum; - /// - /// DataOra ultimo avvio adapter x watchdog - /// - protected DateTime adpStartRun; - /// /// Vettore 32 BIT valori in ingresso al filtro /// @@ -389,26 +384,6 @@ namespace IOB_UT_NEXT.Iob /// protected bool disablePzCountByIob = false; - /// - /// Veto x esecuzione task AutoDossier - /// - protected DateTime dtVetoAutoDossier = DateTime.Now; - - /// - /// Veto x lettura contapezzi (in caso di autoODL con attesa reset ad esempio...) - /// - protected DateTime dtVetoReadPzCount = DateTime.Now; - - /// - /// DataOra x veto all'invio dataItem - /// - protected DateTime dtVetoSenDataItem = DateTime.Now; - - /// - /// Veto x esecuzione Task2Exe troppo frequenti - /// - protected DateTime dtVetoTask2Exe = DateTime.Now; - /// /// Determina se sia prevista gestione PODL (creazione/avvio/chiusura) come Soitaab /// @@ -485,10 +460,6 @@ namespace IOB_UT_NEXT.Iob /// protected bool forcePzReset = false; - /// - /// indica che è richiesto forzatamente reset contapezzi - /// - protected DateTime forcePzResetUntil = DateTime.Now.AddMinutes(-1); /// /// DEADBAND globale se impostata (es x gestire variazioni minime valori FluxLog da inviare...) @@ -510,25 +481,12 @@ namespace IOB_UT_NEXT.Iob /// protected bool inSetup = false; - /// - /// ultimo tentativo connessione... - /// - protected DateTime lastConnectTry; - - /// - /// Ultimo LOG registrazione avvio (x ridurre log notturni...) - /// - protected DateTime lastLogStartup = DateTime.Today.AddHours(-1); /// /// Dizionario ULTIMI valori impostati x produzione /// protected Dictionary lastProdData = new Dictionary(); - /// - /// Ultimo invio contapezzi (x invio delayed) - /// - protected DateTime lastPzCountSend; /// /// Dizionario ultimi valori (string) delle TSS diff --git a/IOB-UT-NEXT/Iob/DateTimeHelper.cs b/IOB-UT-NEXT/Iob/DateTimeHelper.cs index 4c015655..eb14ff72 100644 --- a/IOB-UT-NEXT/Iob/DateTimeHelper.cs +++ b/IOB-UT-NEXT/Iob/DateTimeHelper.cs @@ -14,11 +14,46 @@ namespace IOB_UT_NEXT.Iob { #region Public Fields + /// + /// DataOra ultimo avvio adapter x watchdog + /// + public DateTime adpStartRun; + /// /// Data/ora ultimo avvio adapter /// public DateTime AvvioAdp = DateTime.Now; + /// + /// Veto x esecuzione task AutoDossier + /// + public DateTime dtVetoAutoDossier = DateTime.Now; + + /// + /// Veto x lettura contapezzi (in caso di autoODL con attesa reset ad esempio...) + /// + public DateTime dtVetoReadPzCount = DateTime.Now; + + /// + /// DataOra x veto all'invio dataItem + /// + public DateTime dtVetoSenDataItem = DateTime.Now; + + /// + /// Veto x esecuzione Task2Exe troppo frequenti + /// + public DateTime dtVetoTask2Exe = DateTime.Now; + + /// + /// indica che è richiesto forzatamente reset contapezzi + /// + public DateTime forcePzResetUntil = DateTime.Now.AddMinutes(-1); + + /// + /// ultimo tentativo connessione... + /// + public DateTime lastConnectTry; + /// /// dataOra ultima verifica CNC disconnesso... /// @@ -39,6 +74,11 @@ namespace IOB_UT_NEXT.Iob /// public DateTime lastIobStatusDisplUpdate = DateTime.Now; + /// + /// Ultimo LOG registrazione avvio (x ridurre log notturni...) + /// + public DateTime lastLogStartup = DateTime.Today.AddHours(-1); + /// /// dataOra ultimo log periodico... /// @@ -121,5 +161,11 @@ namespace IOB_UT_NEXT.Iob public DateTime vetoSplit = DateTime.Now.AddMinutes(1); #endregion Public Fields + + + /// + /// Ultimo invio contapezzi (x invio delayed) + /// + public DateTime lastPzCountSend; } } \ No newline at end of file diff --git a/IOB-WIN-BECKHOFF/IobBeckhoff/Beckhoff.cs b/IOB-WIN-BECKHOFF/IobBeckhoff/Beckhoff.cs index 9fdae387..b1ba9b30 100644 --- a/IOB-WIN-BECKHOFF/IobBeckhoff/Beckhoff.cs +++ b/IOB-WIN-BECKHOFF/IobBeckhoff/Beckhoff.cs @@ -28,7 +28,7 @@ namespace IOB_WIN_BECKHOFF.IobBeckhoff // init datetime counters DateTime adesso = DateTime.Now; - lastPzCountSend = adesso; + DtHelp.lastPzCountSend = adesso; lastWarnODL = adesso; vetoCheckStatus = adesso; diff --git a/IOB-WIN-FANUC/Iob/Fanuc.cs b/IOB-WIN-FANUC/Iob/Fanuc.cs index a6f2b155..eb4e2545 100644 --- a/IOB-WIN-FANUC/Iob/Fanuc.cs +++ b/IOB-WIN-FANUC/Iob/Fanuc.cs @@ -35,7 +35,7 @@ namespace IOB_WIN_FANUC.Iob // gestione invio ritardato contapezzi - lastPzCountSend = DateTime.Now; + DtHelp.lastPzCountSend = DateTime.Now; lastWarnODL = DateTime.Now; int gSize = 0; int rSize = 8; @@ -2605,9 +2605,8 @@ namespace IOB_WIN_FANUC.Iob } // verifico NON sia vietato gestione contapezzi if (!plcPzCountValid) - //if (!plcPzCountValid || !rawInputRead) { - lgInfo($"Veto check contapezzi e ODL fino alle {dtVetoReadPzCount}"); + lgInfo($"Veto check contapezzi e ODL fino alle {DtHelp.dtVetoReadPzCount}"); } else { @@ -2616,7 +2615,7 @@ namespace IOB_WIN_FANUC.Iob { // controllo se è passato intervallo minimo tra 2 // controlli/elaborazioni x distanziare invio e ridurre letture - if (DateTime.Now >= lastPzCountSend.AddMilliseconds(pzCountDelay)) + if (DateTime.Now >= DtHelp.lastPzCountSend.AddMilliseconds(pzCountDelay)) { // se sono differenti MOSTRO... if (contapezziPLC != contapezziIOB) @@ -2650,17 +2649,17 @@ namespace IOB_WIN_FANUC.Iob pzCntReload(true); } // resetto timer... - lastPzCountSend = DateTime.Now; + DtHelp.lastPzCountSend = DateTime.Now; } } } else { - if (DateTime.Now >= lastPzCountSend.AddMilliseconds(pzCountDelay)) + if (DateTime.Now >= DtHelp.lastPzCountSend.AddMilliseconds(pzCountDelay)) { lgInfo($"Attenzione: mancanza ODL non procedo con gestione contapezzi. contapezziPLC FANUC: {contapezziPLC} | contapezziIOB {contapezziIOB}"); // resetto timer... - lastPzCountSend = DateTime.Now; + DtHelp.lastPzCountSend = DateTime.Now; } } } diff --git a/IOB-WIN-FORM/Iob/BaseObj.cs b/IOB-WIN-FORM/Iob/BaseObj.cs index 1a3bdc6e..a0fb40f8 100644 --- a/IOB-WIN-FORM/Iob/BaseObj.cs +++ b/IOB-WIN-FORM/Iob/BaseObj.cs @@ -239,13 +239,13 @@ namespace IOB_WIN_FORM.Iob { lg.Factory.Configuration.Variables["codIOB"] = IOBConfFull.General.FilenameIOB; DateTime adesso = DateTime.Now; - if (adesso.Subtract(lastLogStartup).TotalMinutes > vetoLogStartupDuration) + if (adesso.Subtract(DtHelp.lastLogStartup).TotalMinutes > vetoLogStartupDuration) { lg.Info(message); // se supera di 5 minutis cadenza -_> reimposto veto... - if (adesso.Subtract(lastLogStartup).TotalMinutes > vetoLogStartupDuration + 5) + if (adesso.Subtract(DtHelp.lastLogStartup).TotalMinutes > vetoLogStartupDuration + 5) { - lastLogStartup = adesso; + DtHelp.lastLogStartup = adesso; } } if (sendToForm) @@ -268,13 +268,13 @@ namespace IOB_WIN_FORM.Iob { lg.Factory.Configuration.Variables["codIOB"] = IOBConfFull.General.FilenameIOB; DateTime adesso = DateTime.Now; - if (adesso.Subtract(lastLogStartup).TotalMinutes > vetoLogStartupDuration) + if (adesso.Subtract(DtHelp.lastLogStartup).TotalMinutes > vetoLogStartupDuration) { lg.Info(message, args); // se supera di 5 minutis cadenza -_> reimposto veto... - if (adesso.Subtract(lastLogStartup).TotalMinutes > vetoLogStartupDuration + 5) + if (adesso.Subtract(DtHelp.lastLogStartup).TotalMinutes > vetoLogStartupDuration + 5) { - lastLogStartup = adesso; + DtHelp.lastLogStartup = adesso; } } sendToLogWatch("INFO", message, args); diff --git a/IOB-WIN-FORM/Iob/Generic.cs b/IOB-WIN-FORM/Iob/Generic.cs index 9a29a23d..8206b888 100644 --- a/IOB-WIN-FORM/Iob/Generic.cs +++ b/IOB-WIN-FORM/Iob/Generic.cs @@ -77,10 +77,10 @@ namespace IOB_WIN_FORM.Iob SetupQueue(); - lastConnectTry = DateTime.Now; + DtHelp.lastConnectTry = DateTime.Now; lgInfo("Avvio preliminare AdapterGeneric"); - lastLogStartup = DateTime.Now; + DtHelp.lastLogStartup = DateTime.Now; // setup currProdData & last prod data currProdData = redisMan.redGetHashDict(rKeyCurrProdData); @@ -734,13 +734,13 @@ namespace IOB_WIN_FORM.Iob { // imposto flag adapter running.. adpCommAct = true; - adpStartRun = DateTime.Now; + DtHelp.adpStartRun = DateTime.Now; } catch (Exception exc) { string errore = $"Adapter NOT STARTED!!!{Environment.NewLine}{exc}"; adpCommAct = false; - adpStartRun = DateTime.Now; + DtHelp.adpStartRun = DateTime.Now; currDispData.newLiveLogData = errore; } if (adpCommAct) @@ -820,11 +820,11 @@ namespace IOB_WIN_FORM.Iob // log ADP running lgInfo("Non eseguo chiamata: ADP ancora in running"); // se è bloccato da oltre maxSec lo sblocco... - if (DateTime.Now.Subtract(adpStartRun).TotalSeconds > utils.CRI("maxAdapterLockSec")) + if (DateTime.Now.Subtract(DtHelp.adpStartRun).TotalSeconds > utils.CRI("maxAdapterLockSec")) { // tolgo flag running adpCommAct = false; - adpStartRun = DateTime.Now; + DtHelp.adpStartRun = DateTime.Now; } } } @@ -840,11 +840,11 @@ namespace IOB_WIN_FORM.Iob { waitRecMSec = IOBConfFull.General.WaitRecMsec; } - DateTime dtVeto = lastConnectTry.AddMilliseconds(waitRecMSec); + DateTime dtVeto = DtHelp.lastConnectTry.AddMilliseconds(waitRecMSec); if (DateTime.Now > dtVeto) { - lgInfo($"Veto Time Elapsed | lastConnectTry: {lastConnectTry} | waitRecMSec {waitRecMSec} ms) | NOW tryConnect"); - lastConnectTry = DateTime.Now; + lgInfo($"Veto Time Elapsed | DtHelp.lastConnectTry: {DtHelp.lastConnectTry} | waitRecMSec {waitRecMSec} ms) | NOW tryConnect"); + DtHelp.lastConnectTry = DateTime.Now; tryConnect(); } } @@ -1096,7 +1096,7 @@ namespace IOB_WIN_FORM.Iob } // imposto reset gestione pzcount da parametri DtHelp.vetoQueuePzCount = DateTime.Now.AddMinutes(IOBConfFull.General.DelayReadPzCountSetup); - dtVetoReadPzCount = DateTime.Now.AddMinutes(delayMinReadPzCount); + DtHelp.dtVetoReadPzCount = DateTime.Now.AddMinutes(delayMinReadPzCount); } else { @@ -1174,7 +1174,7 @@ namespace IOB_WIN_FORM.Iob lgDebug($"Generic.executeTasks {tName} | resetContapezziPLC"); taskOk = resetContapezziPLC(codTav); DtHelp.vetoQueuePzCount = DateTime.Now.AddMinutes(IOBConfFull.General.DelayReadPzCountSetup); - dtVetoReadPzCount = DateTime.Now.AddMinutes(delayMinReadPzCount); + DtHelp.dtVetoReadPzCount = DateTime.Now.AddMinutes(delayMinReadPzCount); } taskVal = taskOk ? "startSetup | RESET: SETUP START" : "startSetup | PZ RESET DISABLED | NO EXEC"; lgInfo($"Chiamata startSetup: taskOk: {taskOk} | taskVal: {taskVal}"); @@ -1958,9 +1958,9 @@ namespace IOB_WIN_FORM.Iob if (IOBConfFull.FluxLog.AutoSnapshotDossier) { DateTime adesso = DateTime.Now; - if (adesso > dtVetoAutoDossier) + if (adesso > DtHelp.dtVetoAutoDossier) { - dtVetoAutoDossier = adesso.AddMinutes(30); + DtHelp.dtVetoAutoDossier = adesso.AddMinutes(30); lgTrace("Richiesta ProcessAutoDossier"); lgTrace("AutoSnapshotDossier abilitato"); @@ -2008,7 +2008,7 @@ namespace IOB_WIN_FORM.Iob { lgTrace("ProcessAutoOdlAsync | AutoChangeOdl abilitato"); // imposto il veto lettura contapezzi a 1 minuto x iniziare... - dtVetoReadPzCount = DateTime.Now.AddMinutes(delayMinReadPzCount); + DtHelp.dtVetoReadPzCount = DateTime.Now.AddMinutes(delayMinReadPzCount); string fullUrl = ""; DateTime adesso = DateTime.Now; DateTime inizioOdl = adesso; @@ -9017,10 +9017,10 @@ namespace IOB_WIN_FORM.Iob { // se non ho veto task2exe DateTime adesso = DateTime.Now; - if (adesso > dtVetoTask2Exe) + if (adesso > DtHelp.dtVetoTask2Exe) { // blocco fisso a 5 sec x ora - dtVetoTask2Exe = adesso.AddSeconds(5); + DtHelp.dtVetoTask2Exe = adesso.AddSeconds(5); // recupero elenco delle cose da fare string resp = await getTask2exe(""); // se ho qualcosa --> creo obj e lo accodo... diff --git a/IOB-WIN-FORM/Iob/PingWatchDog.cs b/IOB-WIN-FORM/Iob/PingWatchDog.cs index 1595b91a..ba73a6b8 100644 --- a/IOB-WIN-FORM/Iob/PingWatchDog.cs +++ b/IOB-WIN-FORM/Iob/PingWatchDog.cs @@ -31,7 +31,7 @@ namespace IOB_WIN_FORM.Iob lgInfo("NEW IobPing (WatchDog)"); // init datetime counters DateTime adesso = DateTime.Now; - lastPzCountSend = adesso; + DtHelp.lastPzCountSend = adesso; lastWarnODL = adesso; vetoCheckStatus = adesso; // 2023.09.05 imposto anche primo ping e check disconnected... diff --git a/IOB-WIN-FORM/Iob/Simula.cs b/IOB-WIN-FORM/Iob/Simula.cs index 6b086426..ce6f7adf 100644 --- a/IOB-WIN-FORM/Iob/Simula.cs +++ b/IOB-WIN-FORM/Iob/Simula.cs @@ -71,7 +71,7 @@ namespace IOB_WIN_FORM.Iob // gestione invio ritardato contapezzi DateTime adesso = DateTime.Now; - lastPzCountSend = adesso; + DtHelp.lastPzCountSend = adesso; lastWarnODL = adesso; DtHelp.lastEvCheck = adesso; DtHelp.lastSimData = adesso; @@ -1416,7 +1416,7 @@ namespace IOB_WIN_FORM.Iob } } // resetto timer... - lastPzCountSend = DateTime.Now; + DtHelp.lastPzCountSend = DateTime.Now; } } // provo a fare split ODL... diff --git a/IOB-WIN-FTP/Iob/Ftp.cs b/IOB-WIN-FTP/Iob/Ftp.cs index d3b96925..498c1968 100644 --- a/IOB-WIN-FTP/Iob/Ftp.cs +++ b/IOB-WIN-FTP/Iob/Ftp.cs @@ -39,7 +39,7 @@ namespace IOB_WIN_FTP.Iob B_input = 0; // init datetime counters DateTime adesso = DateTime.Now; - lastPzCountSend = adesso; + DtHelp.lastPzCountSend = adesso; lastWarnODL = adesso; vetoCheckStatus = adesso; // 2023.09.05 imposto anche primo ping e check disconnected... diff --git a/IOB-WIN-KAWASAKI/Iob/Kawasaki.cs b/IOB-WIN-KAWASAKI/Iob/Kawasaki.cs index 17f13141..c26045da 100644 --- a/IOB-WIN-KAWASAKI/Iob/Kawasaki.cs +++ b/IOB-WIN-KAWASAKI/Iob/Kawasaki.cs @@ -23,7 +23,7 @@ namespace IOB_WIN_KAWASAKI.Iob { // gestione invio ritardato contapezzi - lastPzCountSend = DateTime.Now; + DtHelp.lastPzCountSend = DateTime.Now; lastWarnODL = DateTime.Now; // init connessione setConnection(); @@ -889,7 +889,7 @@ namespace IOB_WIN_KAWASAKI.Iob { // ora processo il contapezzi... controllo se è passato intervallo minimo tra 2 // controlli/elaborazioni x distanziare invio e ridurre letture - if (DateTime.Now >= lastPzCountSend.AddMilliseconds(pzCountDelay)) + if (DateTime.Now >= DtHelp.lastPzCountSend.AddMilliseconds(pzCountDelay)) { // se sono differenti MOSTRO... if (contapezziPLC != contapezziIOB) @@ -924,7 +924,7 @@ namespace IOB_WIN_KAWASAKI.Iob pzCntReload(true); } // resetto timer... - lastPzCountSend = DateTime.Now; + DtHelp.lastPzCountSend = DateTime.Now; } } else @@ -934,11 +934,11 @@ namespace IOB_WIN_KAWASAKI.Iob } else { - if (DateTime.Now >= lastPzCountSend.AddMilliseconds(pzCountDelay)) + if (DateTime.Now >= DtHelp.lastPzCountSend.AddMilliseconds(pzCountDelay)) { lgError($"Attenzione: mancanza ODL non procedo con gestione contapezzi. contapezziPLC KAWASAKI {contapezziPLC} | contapezziIOB {contapezziIOB}"); // resetto timer... - lastPzCountSend = DateTime.Now; + DtHelp.lastPzCountSend = DateTime.Now; } } diff --git a/IOB-WIN-MBUS/IobModbustTCP/ModbusTCP.cs b/IOB-WIN-MBUS/IobModbustTCP/ModbusTCP.cs index 96a1dfd5..73161e69 100644 --- a/IOB-WIN-MBUS/IobModbustTCP/ModbusTCP.cs +++ b/IOB-WIN-MBUS/IobModbustTCP/ModbusTCP.cs @@ -46,7 +46,7 @@ namespace IOB_WIN_MBUS.IobModbusTCP { // gestione invio ritardato contapezzi - lastPzCountSend = adesso; + DtHelp.lastPzCountSend = adesso; lastWarnODL = adesso; // inizializzo parametri... parametri = new ModBusTcpParamConf(); diff --git a/IOB-WIN-MITSUBISHI/Iob/Mitsubishi.cs b/IOB-WIN-MITSUBISHI/Iob/Mitsubishi.cs index a6d5a7fc..da35c448 100644 --- a/IOB-WIN-MITSUBISHI/Iob/Mitsubishi.cs +++ b/IOB-WIN-MITSUBISHI/Iob/Mitsubishi.cs @@ -26,7 +26,7 @@ namespace IOB_WIN_MITSUBISHI.Iob lgInfo("Start init Mitsubishi"); // gestione invio ritardato contapezzi - lastPzCountSend = DateTime.Now; + DtHelp.lastPzCountSend = DateTime.Now; lastWarnODL = DateTime.Now; // inizializzo correttamente aree memoria secondo CONF - da IobConfFull @@ -1663,7 +1663,7 @@ namespace IOB_WIN_MITSUBISHI.Iob { // controllo se è passato intervallo minimo tra 2 // controlli/elaborazioni x distanziare invio e ridurre letture - if (DateTime.Now >= lastPzCountSend.AddMilliseconds(pzCountDelay)) + if (DateTime.Now >= DtHelp.lastPzCountSend.AddMilliseconds(pzCountDelay)) { // se sono differenti MOSTRO... if (contapezziPLC != contapezziIOB) @@ -1697,17 +1697,17 @@ namespace IOB_WIN_MITSUBISHI.Iob pzCntReload(true); } // resetto timer... - lastPzCountSend = DateTime.Now; + DtHelp.lastPzCountSend = DateTime.Now; } } } else { - if (DateTime.Now >= lastPzCountSend.AddMilliseconds(pzCountDelay)) + if (DateTime.Now >= DtHelp.lastPzCountSend.AddMilliseconds(pzCountDelay)) { lgInfo($"Attenzione: mancanza ODL non procedo con gestione contapezzi. contapezziPLC MITSUBISHI: {contapezziPLC} | contapezziIOB {contapezziIOB}"); // resetto timer... - lastPzCountSend = DateTime.Now; + DtHelp.lastPzCountSend = DateTime.Now; } } #endif diff --git a/IOB-WIN-MTC/Iob/MTConn.cs b/IOB-WIN-MTC/Iob/MTConn.cs index ce86dcdc..35e01dd7 100644 --- a/IOB-WIN-MTC/Iob/MTConn.cs +++ b/IOB-WIN-MTC/Iob/MTConn.cs @@ -60,7 +60,7 @@ namespace IOB_WIN_MTC.Iob // init datetime counters DateTime adesso = DateTime.Now; - lastPzCountSend = adesso; + DtHelp.lastPzCountSend = adesso; lastWarnODL = adesso; lastCurrent = adesso; // ora leggo il file di conf specifico.... @@ -1349,7 +1349,7 @@ namespace IOB_WIN_MTC.Iob // fix tempi! DateTime adesso = DateTime.Now; - lastPzCountSend = adesso; + DtHelp.lastPzCountSend = adesso; lastWarnODL = adesso; lastCurrent = adesso; } @@ -2032,12 +2032,12 @@ namespace IOB_WIN_MTC.Iob { // verifico veto ad invio (ogni 60 min...) DateTime adesso = DateTime.Now; - if (adesso > dtVetoSenDataItem) + if (adesso > DtHelp.dtVetoSenDataItem) { string rawData = JsonConvert.SerializeObject(dataItems); var resp = HttpService.CallUrlPost($"{urlSaveDataItems}", rawData); // imposto nuovo veto - dtVetoSenDataItem = adesso.AddMinutes(minVetoSendDataItem); + DtHelp.dtVetoSenDataItem = adesso.AddMinutes(minVetoSendDataItem); } } } @@ -2048,21 +2048,10 @@ namespace IOB_WIN_MTC.Iob /// private void traceObservation(IObservation observation) { +#if DEBUG // SOLO in debug... -#if false - string sMsg = $"VETO: - {observation.DataItemId} | {observation.Category}"; - if (observation.Values != null && observation.Values.Count() > 0) - { - foreach (var item in observation.Values) - { - sMsg += $" | {item.Key}: {item.Value}"; - } - } - lgTrace(sMsg); - trackExchDataRaw(sMsg.Length, 1024); -#endif - trackExchData(64, 4096); +#endif } #endregion Private Methods diff --git a/IOB-WIN-OMRON/Iob/Omron.cs b/IOB-WIN-OMRON/Iob/Omron.cs index e0098393..59ad6623 100644 --- a/IOB-WIN-OMRON/Iob/Omron.cs +++ b/IOB-WIN-OMRON/Iob/Omron.cs @@ -25,7 +25,7 @@ namespace IOB_WIN_OMRON.Iob { // gestione invio ritardato contapezzi - lastPzCountSend = DateTime.Now; + DtHelp.lastPzCountSend = DateTime.Now; lastWarnODL = DateTime.Now; // imposto i parametri PLC diff --git a/IOB-WIN-OPC-UA/IobOpc/OpcUa.cs b/IOB-WIN-OPC-UA/IobOpc/OpcUa.cs index 54a04200..e097cdc7 100644 --- a/IOB-WIN-OPC-UA/IobOpc/OpcUa.cs +++ b/IOB-WIN-OPC-UA/IobOpc/OpcUa.cs @@ -52,7 +52,7 @@ namespace IOB_WIN_OPC_UA.IobOpc // init datetime counters DateTime adesso = DateTime.Now; - lastPzCountSend = adesso; + DtHelp.lastPzCountSend = adesso; lastWarnODL = adesso; lastCurrent = adesso; lgTrace($"Aggiornato IobOpcUa.lastCurrent: {lastCurrent}"); @@ -2658,7 +2658,7 @@ namespace IOB_WIN_OPC_UA.IobOpc // fix tempi! DateTime adesso = DateTime.Now; - lastPzCountSend = adesso; + DtHelp.lastPzCountSend = adesso; lastWarnODL = adesso; lastCurrent = adesso; lgTrace($"Aggiornato doConnect.lastCurrent: {lastCurrent}"); diff --git a/IOB-WIN-OPC-UA/IobOpc/OpcUaSiemens.cs b/IOB-WIN-OPC-UA/IobOpc/OpcUaSiemens.cs index 6537c022..4c3b7db5 100644 --- a/IOB-WIN-OPC-UA/IobOpc/OpcUaSiemens.cs +++ b/IOB-WIN-OPC-UA/IobOpc/OpcUaSiemens.cs @@ -161,7 +161,7 @@ namespace IOB_WIN_OPC_UA.IobOpc { lgInfo("OpcUaSiemens.resetContapezziPLC 02"); // imposto un veto in lettura cmq x evitare problemi - dtVetoReadPzCount = DateTime.Now.AddMinutes(delayMinReadPzCount); + DtHelp.dtVetoReadPzCount = DateTime.Now.AddMinutes(delayMinReadPzCount); if (opcUaParams.actResetCounter != null && opcUaParams.actResetCounter.Count > 0) { lgInfo("OpcUaSiemens.resetContapezziPLC 03"); @@ -318,7 +318,7 @@ namespace IOB_WIN_OPC_UA.IobOpc if (!isWorking && delayMinReadPzCount > 0) { // metto un veto al contapezzi... - dtVetoReadPzCount = DateTime.Now.AddMinutes(delayMinReadPzCount); + DtHelp.dtVetoReadPzCount = DateTime.Now.AddMinutes(delayMinReadPzCount); } // se ho emergenza premuta --> emergenza! @@ -335,10 +335,10 @@ namespace IOB_WIN_OPC_UA.IobOpc { // RUN = LAVORA! B_input += (1 << 1); - if (dtVetoReadPzCount >= adesso) + if (DtHelp.dtVetoReadPzCount >= adesso) { // tolgo eventuale veto al contapezzi... - dtVetoReadPzCount = DateTime.Now.AddSeconds(-1); + DtHelp.dtVetoReadPzCount = DateTime.Now.AddSeconds(-1); } } // se ho almeno 1 allarme E NON SONO IN AUTO --> ALARM! diff --git a/IOB-WIN-OPC-UA/IobOpc/OpcUaSiemensRama.cs b/IOB-WIN-OPC-UA/IobOpc/OpcUaSiemensRama.cs index 74425e59..c676e972 100644 --- a/IOB-WIN-OPC-UA/IobOpc/OpcUaSiemensRama.cs +++ b/IOB-WIN-OPC-UA/IobOpc/OpcUaSiemensRama.cs @@ -95,7 +95,7 @@ namespace IOB_WIN_OPC_UA.IobOpc plcWriteParams(ref list2Write); // aggiungo 1 altro step di attesa alla lettura pezzi x sicurezza... - dtVetoReadPzCount = DateTime.Now.AddMinutes(delayMinReadPzCount); + DtHelp.dtVetoReadPzCount = DateTime.Now.AddMinutes(delayMinReadPzCount); } /// diff --git a/IOB-WIN-OSAI/Iob/OSAI.cs b/IOB-WIN-OSAI/Iob/OSAI.cs index 1072095e..60171751 100644 --- a/IOB-WIN-OSAI/Iob/OSAI.cs +++ b/IOB-WIN-OSAI/Iob/OSAI.cs @@ -40,7 +40,7 @@ namespace IOB_WIN_OSAI.Iob { // gestione invio ritardato contapezzi - lastPzCountSend = DateTime.Now; + DtHelp.lastPzCountSend = DateTime.Now; lastWarnODL = DateTime.Now; if (IOBConfFull != null) { @@ -710,7 +710,7 @@ namespace IOB_WIN_OSAI.Iob { // controllo se è passato intervallo minimo tra 2 controlli/elaborazioni // x distanziare invio e ridurre letture - if (DateTime.Now >= lastPzCountSend.AddMilliseconds(pzCountDelay)) + if (DateTime.Now >= DtHelp.lastPzCountSend.AddMilliseconds(pzCountDelay)) { // se sono differenti MOSTRO... if (contapezziPLC != contapezziIOB) @@ -743,16 +743,16 @@ namespace IOB_WIN_OSAI.Iob pzCntReload(true); } // resetto timer... - lastPzCountSend = DateTime.Now; + DtHelp.lastPzCountSend = DateTime.Now; } } else { - if (DateTime.Now >= lastPzCountSend.AddMilliseconds(pzCountDelay)) + if (DateTime.Now >= DtHelp.lastPzCountSend.AddMilliseconds(pzCountDelay)) { lgInfo($"Attenzione: mancanza ODL non procedo con gestione contapezzi. contapezziPLC OSAI: {contapezziPLC} | contapezziIOB {contapezziIOB}"); // resetto timer... - lastPzCountSend = DateTime.Now; + DtHelp.lastPzCountSend = DateTime.Now; } } } diff --git a/IOB-WIN-SHELLY/Iob/ShellyClientGen1.cs b/IOB-WIN-SHELLY/Iob/ShellyClientGen1.cs index ed52a548..31915b33 100644 --- a/IOB-WIN-SHELLY/Iob/ShellyClientGen1.cs +++ b/IOB-WIN-SHELLY/Iob/ShellyClientGen1.cs @@ -43,7 +43,7 @@ namespace IOB_WIN_SHELLY.Iob B_input = 0; // init datetime counters DateTime adesso = DateTime.Now; - lastPzCountSend = adesso; + DtHelp.lastPzCountSend = adesso; lastWarnODL = adesso; vetoCheckStatus = adesso; // 2023.09.05 imposto anche primo ping e check disconnected... diff --git a/IOB-WIN-SHELLY/Iob/ShellyClientGen2.cs b/IOB-WIN-SHELLY/Iob/ShellyClientGen2.cs index 4be5341a..cdc1e296 100644 --- a/IOB-WIN-SHELLY/Iob/ShellyClientGen2.cs +++ b/IOB-WIN-SHELLY/Iob/ShellyClientGen2.cs @@ -44,7 +44,7 @@ namespace IOB_WIN_SHELLY.Iob B_input = 0; // init datetime counters DateTime adesso = DateTime.Now; - lastPzCountSend = adesso; + DtHelp.lastPzCountSend = adesso; lastWarnODL = adesso; vetoCheckStatus = adesso; // 2023.09.05 imposto anche primo ping e check disconnected... diff --git a/IOB-WIN-SIEMENS/IobSiemens/IobSiemensTorri_legacy.cs b/IOB-WIN-SIEMENS/IobSiemens/IobSiemensTorri_legacy.cs index fb5a6638..43572c65 100644 --- a/IOB-WIN-SIEMENS/IobSiemens/IobSiemensTorri_legacy.cs +++ b/IOB-WIN-SIEMENS/IobSiemens/IobSiemensTorri_legacy.cs @@ -175,7 +175,7 @@ namespace IOB_WIN { // gestione invio ritardato contapezzi - lastPzCountSend = DateTime.Now; + DtHelp.lastPzCountSend = DateTime.Now; lastWarnODL = DateTime.Now; // init conf _IOBConf = IOBConf; @@ -705,7 +705,7 @@ namespace IOB_WIN { // ora processo il contapezzi... // controllo se è passato intervallo minimo tra 2 controlli/elaborazioni x distanziare invio e ridurre letture - if (DateTime.Now >= lastPzCountSend.AddMilliseconds(pzCountDelay)) + if (DateTime.Now >= DtHelp.lastPzCountSend.AddMilliseconds(pzCountDelay)) { // se sono differenti MOSTRO... @@ -734,16 +734,16 @@ namespace IOB_WIN lgInfo(string.Format("Errore salvataggio Contapezzi SIEMENST-TORRI: {0} | Contapezzi interno {1} | Errore salvataggio: {2}", lastCountCNC, contapezzi, retVal)); } // resetto timer... - lastPzCountSend = DateTime.Now; + DtHelp.lastPzCountSend = DateTime.Now; } } else { - if (DateTime.Now >= lastPzCountSend.AddMilliseconds(pzCountDelay)) + if (DateTime.Now >= DtHelp.lastPzCountSend.AddMilliseconds(pzCountDelay)) { lgInfo(string.Format("Attenzione: mancanza ODL non procedo con gestione contapezzi. Contapezzi SIEMENST-TORRI: {0} | Contapezzi interno {1}", lastCountCNC, contapezzi)); // resetto timer... - lastPzCountSend = DateTime.Now; + DtHelp.lastPzCountSend = DateTime.Now; } } diff --git a/IOB-WIN-SIEMENS/IobSiemens/Siemens.cs b/IOB-WIN-SIEMENS/IobSiemens/Siemens.cs index f4dc94be..31f95907 100644 --- a/IOB-WIN-SIEMENS/IobSiemens/Siemens.cs +++ b/IOB-WIN-SIEMENS/IobSiemens/Siemens.cs @@ -55,7 +55,7 @@ namespace IOB_WIN_SIEMENS.IobSiemens { // gestione invio ritardato contapezzi - lastPzCountSend = DateTime.Now; + DtHelp.lastPzCountSend = DateTime.Now; lastWarnODL = DateTime.Now; // inizializzo parametri... parametri = new connParamS7() @@ -1510,7 +1510,7 @@ namespace IOB_WIN_SIEMENS.IobSiemens // procedura corrente... needRefresh = false; lgInfoStartup("SIEMENS: tryConnect"); - lastConnectTry = DateTime.Now; + DtHelp.lastConnectTry = DateTime.Now; tryConnect(); lgInfoStartup("End init Adapter SIEMENS"); if (isVerboseLog) diff --git a/IOB-WIN-SIEMENS/IobSiemens/SiemensFape.cs b/IOB-WIN-SIEMENS/IobSiemens/SiemensFape.cs index 6ff38b52..f72d13f9 100644 --- a/IOB-WIN-SIEMENS/IobSiemens/SiemensFape.cs +++ b/IOB-WIN-SIEMENS/IobSiemens/SiemensFape.cs @@ -155,7 +155,7 @@ namespace IOB_WIN_SIEMENS.IobSiemens // verifico NON sia vietato gestione contapezzi if (!plcPzCountValid || !rawInputRead) { - lgInfo($"Veto check contapezzi e ODL fino alle {dtVetoReadPzCount}"); + lgInfo($"Veto check contapezzi e ODL fino alle {DtHelp.dtVetoReadPzCount}"); } else { @@ -163,7 +163,7 @@ namespace IOB_WIN_SIEMENS.IobSiemens { // ora processo il contapezzi... controllo se è passato intervallo minimo tra 2 // controlli/elaborazioni x distanziare invio e ridurre letture - if (DateTime.Now >= lastPzCountSend.AddMilliseconds(pzCountDelay)) + if (DateTime.Now >= DtHelp.lastPzCountSend.AddMilliseconds(pzCountDelay)) { // se sono differenti MOSTRO... if (contapezziPLC != contapezziIOB) @@ -195,17 +195,17 @@ namespace IOB_WIN_SIEMENS.IobSiemens pzCntReload(true); } // resetto timer... - lastPzCountSend = DateTime.Now; + DtHelp.lastPzCountSend = DateTime.Now; } } } else { - if (DateTime.Now >= lastPzCountSend.AddMilliseconds(pzCountDelay)) + if (DateTime.Now >= DtHelp.lastPzCountSend.AddMilliseconds(pzCountDelay)) { lgInfo($"Attenzione: mancanza ODL non procedo con gestione contapezzi. contapezziPLC SIEMENS {contapezziPLC} | contapezziIOB {contapezziIOB}"); // resetto timer... - lastPzCountSend = DateTime.Now; + DtHelp.lastPzCountSend = DateTime.Now; } } } diff --git a/IOB-WIN-SIEMENS/IobSiemens/SiemensFapeV2.cs b/IOB-WIN-SIEMENS/IobSiemens/SiemensFapeV2.cs index 3bbd9cd4..65aa4a7a 100644 --- a/IOB-WIN-SIEMENS/IobSiemens/SiemensFapeV2.cs +++ b/IOB-WIN-SIEMENS/IobSiemens/SiemensFapeV2.cs @@ -259,7 +259,7 @@ namespace IOB_WIN_SIEMENS.IobSiemens // verifico NON sia vietato gestione contapezzi if (!plcPzCountValid || !rawInputRead) { - lgInfo($"Veto check contapezzi e ODL fino alle {dtVetoReadPzCount}"); + lgInfo($"Veto check contapezzi e ODL fino alle {DtHelp.dtVetoReadPzCount}"); } else { @@ -267,7 +267,7 @@ namespace IOB_WIN_SIEMENS.IobSiemens { // ora processo il contapezzi... controllo se è passato intervallo minimo tra 2 // controlli/elaborazioni x distanziare invio e ridurre letture - if (DateTime.Now >= lastPzCountSend.AddMilliseconds(pzCountDelay)) + if (DateTime.Now >= DtHelp.lastPzCountSend.AddMilliseconds(pzCountDelay)) { // se sono differenti MOSTRO... if (contapezziPLC != contapezziIOB) @@ -300,17 +300,17 @@ namespace IOB_WIN_SIEMENS.IobSiemens pzCntReload(true); } // resetto timer... - lastPzCountSend = DateTime.Now; + DtHelp.lastPzCountSend = DateTime.Now; } } } else { - if (DateTime.Now >= lastPzCountSend.AddMilliseconds(pzCountDelay)) + if (DateTime.Now >= DtHelp.lastPzCountSend.AddMilliseconds(pzCountDelay)) { lgInfo($"Attenzione: mancanza ODL non procedo con gestione contapezzi. contapezziPLC SIEMENS {contapezziPLC} | contapezziIOB {contapezziIOB}"); // resetto timer... - lastPzCountSend = DateTime.Now; + DtHelp.lastPzCountSend = DateTime.Now; } } } diff --git a/IOB-WIN-SIEMENS/IobSiemens/SiemensLasco.cs b/IOB-WIN-SIEMENS/IobSiemens/SiemensLasco.cs index dac4568b..3ff09d78 100644 --- a/IOB-WIN-SIEMENS/IobSiemens/SiemensLasco.cs +++ b/IOB-WIN-SIEMENS/IobSiemens/SiemensLasco.cs @@ -196,7 +196,7 @@ namespace IOB_WIN_SIEMENS.IobSiemens // reset type counter valore += 4; // controlla se resettare il pz reset... - forcePzReset = forcePzResetUntil >= DateTime.Now; + forcePzReset = DtHelp.forcePzResetUntil >= DateTime.Now; } valore += (byte)(counterMes2Plc << 7); MemBlock[0] = (byte)valore; @@ -206,7 +206,7 @@ namespace IOB_WIN_SIEMENS.IobSiemens case taskType.forceResetPzCount: // forzo reset contapezzi forcePzReset = true; - forcePzResetUntil = DateTime.Now.AddSeconds(3); + DtHelp.forcePzResetUntil = DateTime.Now.AddSeconds(3); break; case taskType.setParameter: @@ -235,7 +235,7 @@ namespace IOB_WIN_SIEMENS.IobSiemens lgInfo("!!! Richiesta startSetup - BLOCCO contapezzi LASCO !!!"); // forzo reset contapezzi forcePzReset = true; - forcePzResetUntil = DateTime.Now.AddSeconds(3); + DtHelp.forcePzResetUntil = DateTime.Now.AddSeconds(3); break; case taskType.stopSetup: @@ -244,7 +244,7 @@ namespace IOB_WIN_SIEMENS.IobSiemens lgInfo("!!! Richiesta stopSetup - SBLOCCO contapezzi LASCO!!!"); // forzo reset contapezzi forcePzReset = true; - forcePzResetUntil = DateTime.Now.AddSeconds(3); + DtHelp.forcePzResetUntil = DateTime.Now.AddSeconds(3); break; case taskType.fixStopSetup: diff --git a/IOB-WIN-SIEMENS/IobSiemens/SiemensTorri.cs b/IOB-WIN-SIEMENS/IobSiemens/SiemensTorri.cs index e53c940e..40ab6823 100644 --- a/IOB-WIN-SIEMENS/IobSiemens/SiemensTorri.cs +++ b/IOB-WIN-SIEMENS/IobSiemens/SiemensTorri.cs @@ -37,7 +37,7 @@ namespace IOB_WIN_SIEMENS.IobSiemens } // provo ad aggiungere un piccolo delay lettura pzCount - dtVetoReadPzCount = DateTime.Now.AddSeconds(10); + DtHelp.dtVetoReadPzCount = DateTime.Now.AddSeconds(10); lgInfo("NEW IOB SIEMENS versione TORRI avviato | vers 2024"); } @@ -377,7 +377,7 @@ namespace IOB_WIN_SIEMENS.IobSiemens // verifico NON sia vietato gestione contapezzi if (!plcPzCountValid || !rawInputRead) { - lgInfo($"Veto check contapezzi e ODL fino alle {dtVetoReadPzCount}"); + lgInfo($"Veto check contapezzi e ODL fino alle {DtHelp.dtVetoReadPzCount}"); } else { @@ -385,7 +385,7 @@ namespace IOB_WIN_SIEMENS.IobSiemens { // controllo se è passato intervallo minimo tra 2 controlli/elaborazioni x // distanziare invio e ridurre letture - if (DateTime.Now >= lastPzCountSend.AddMilliseconds(pzCountDelay)) + if (DateTime.Now >= DtHelp.lastPzCountSend.AddMilliseconds(pzCountDelay)) { // semplifico: se ho differenza invio in blocco if (contapezziPLC > contapezziIOB) @@ -410,15 +410,15 @@ namespace IOB_WIN_SIEMENS.IobSiemens } else { - if (DateTime.Now >= lastPzCountSend.AddMilliseconds(pzCountDelay)) + if (DateTime.Now >= DtHelp.lastPzCountSend.AddMilliseconds(pzCountDelay)) { lgInfo($"Attenzione: mancanza ODL non procedo con gestione contapezzi. contapezziPLC SIEMENST-TORRI: {contapezziPLC} | contapezziIOB: {contapezziIOB}"); // resetto timer... - lastPzCountSend = DateTime.Now; + DtHelp.lastPzCountSend = DateTime.Now; } } // metto cmq 1 sec a veto verifica contapezzi - dtVetoReadPzCount = DateTime.Now.AddSeconds(1); + DtHelp.dtVetoReadPzCount = DateTime.Now.AddSeconds(1); } // log opzionale! if (verboseLog) diff --git a/IOB-WIN/IobGeneric.cs b/IOB-WIN/IobGeneric.cs index 38bd60f8..521f7f4b 100644 --- a/IOB-WIN/IobGeneric.cs +++ b/IOB-WIN/IobGeneric.cs @@ -43,7 +43,7 @@ namespace IOB_WIN /// /// DataOra ultimo avvio adapter x watchdog /// - protected DateTime adpStartRun; + protected DateTime DtHelp.adpStartRun; /// /// Vettore 32 BIT valori in ingresso al filtro @@ -78,12 +78,12 @@ namespace IOB_WIN /// /// ultimo tentativo connessione... /// - protected DateTime lastConnectTry; + protected DateTime DtHelp.lastConnectTry; /// /// Ultimo invio contapezzi (x invio delayed) /// - protected DateTime lastPzCountSend; + protected DateTime DtHelp.lastPzCountSend; /// /// Dizionario ultimi valori (double) delle TSVC @@ -363,7 +363,7 @@ namespace IOB_WIN // configurazione... cIobConf = IOBConf; - lastConnectTry = DateTime.Now; + DtHelp.lastConnectTry = DateTime.Now; // aggiungo nel logger IDX Macchina lg = LogManager.GetCurrentClassLogger(); @@ -3184,13 +3184,13 @@ namespace IOB_WIN { // imposto flag adapter running.. adpCommAct = true; - adpStartRun = DateTime.Now; + DtHelp.adpStartRun = DateTime.Now; } catch (Exception exc) { string errore = $"Adapter NOT STARTED!!!{Environment.NewLine}{exc}"; adpCommAct = false; - adpStartRun = DateTime.Now; + DtHelp.adpStartRun = DateTime.Now; currDispData.newLiveLogData = errore; } if (adpCommAct) @@ -3278,11 +3278,11 @@ namespace IOB_WIN // log ADP running lgError("Non eseguo chiamata: ADP ancora in running"); // se è bloccato da oltre maxSec lo sblocco... - if (DateTime.Now.Subtract(adpStartRun).TotalSeconds > utils.CRI("maxAdapterLockSec")) + if (DateTime.Now.Subtract(DtHelp.adpStartRun).TotalSeconds > utils.CRI("maxAdapterLockSec")) { // tolgo flag running adpCommAct = false; - adpStartRun = DateTime.Now; + DtHelp.adpStartRun = DateTime.Now; } } } @@ -3293,11 +3293,11 @@ namespace IOB_WIN { // controllo se sia scaduto periodi di veto al tryConnect... int waitRecMSec = utils.CRI("waitRecMSec") * 2; - DateTime dtVeto = lastConnectTry.AddMilliseconds(waitRecMSec); + DateTime dtVeto = DtHelp.lastConnectTry.AddMilliseconds(waitRecMSec); if (DateTime.Now > dtVeto) { lgInfo($"Retry Time Elapsed (waited for {waitRecMSec} ms)--> NOW tryConnect"); - lastConnectTry = DateTime.Now; + DtHelp.lastConnectTry = DateTime.Now; tryConnect(); } } diff --git a/IOB-WIN/IobOSAI.cs b/IOB-WIN/IobOSAI.cs index 71dec67f..a7d172dd 100644 --- a/IOB-WIN/IobOSAI.cs +++ b/IOB-WIN/IobOSAI.cs @@ -59,7 +59,7 @@ namespace IOB_WIN { // gestione invio ritardato contapezzi pzCountDelay = utils.CRI("pzCountDelay"); - lastPzCountSend = DateTime.Now; + DtHelp.lastPzCountSend = DateTime.Now; lastWarnODL = DateTime.Now; if (IOBConf != null) { @@ -251,7 +251,7 @@ namespace IOB_WIN if (!string.IsNullOrEmpty(currODL) && currODL != "0") { // controllo se è passato intervallo minimo tra 2 controlli/elaborazioni x distanziare invio e ridurre letture - if (DateTime.Now >= lastPzCountSend.AddMilliseconds(pzCountDelay)) + if (DateTime.Now >= DtHelp.lastPzCountSend.AddMilliseconds(pzCountDelay)) { // se sono differenti MOSTRO... if (contapezziPLC != contapezziIOB) @@ -282,16 +282,16 @@ namespace IOB_WIN pzCntReload(true); } // resetto timer... - lastPzCountSend = DateTime.Now; + DtHelp.lastPzCountSend = DateTime.Now; } } else { - if (DateTime.Now >= lastPzCountSend.AddMilliseconds(pzCountDelay)) + if (DateTime.Now >= DtHelp.lastPzCountSend.AddMilliseconds(pzCountDelay)) { lgInfo($"Attenzione: mancanza ODL non procedo con gestione contapezzi. contapezziPLC OSAI: {contapezziPLC} | contapezziIOB {contapezziIOB}"); // resetto timer... - lastPzCountSend = DateTime.Now; + DtHelp.lastPzCountSend = DateTime.Now; } } } diff --git a/IOB-WIN/IobSimula.cs b/IOB-WIN/IobSimula.cs index f0ff7617..9703402e 100644 --- a/IOB-WIN/IobSimula.cs +++ b/IOB-WIN/IobSimula.cs @@ -107,7 +107,7 @@ namespace IOB_WIN // gestione invio ritardato contapezzi DateTime adesso = DateTime.Now; - lastPzCountSend = adesso; + DtHelp.lastPzCountSend = adesso; lastWarnODL = adesso; DtHelp.lastEvCheck = adesso; DtHelp.lastSimData = adesso; @@ -407,7 +407,7 @@ namespace IOB_WIN } } // resetto timer... - lastPzCountSend = DateTime.Now; + DtHelp.lastPzCountSend = DateTime.Now; } } // provo a fare split ODL SE NON E' multi.... diff --git a/refactor_progress_tracker.pdf b/refactor_progress_tracker.pdf new file mode 100644 index 00000000..b8ec450d Binary files /dev/null and b/refactor_progress_tracker.pdf differ