Ancora spostamento variabili dateTime in helper

This commit is contained in:
Samuele Locatelli
2026-05-23 21:31:59 +02:00
parent 0e1575dd9a
commit bd1d95112b
21 changed files with 106 additions and 120 deletions
-15
View File
@@ -129,21 +129,6 @@ namespace IOB_UT_NEXT.Iob
/// </summary>
public string lastSignInVal = "";
/// <summary>
/// DateTime Ultimo valore simulazione generato
/// </summary>
public DateTime lastSim;
/// <summary>
/// dataOra ultimo segnale inviato al SERVER...
/// </summary>
public DateTime lastWatchDog;
/// <summary>
/// dataOra ultimo segnale inviato a macchina/PLC...
/// </summary>
public DateTime lastWatchDogPLC = DateTime.Now;
/// <summary>
/// Massimo numero di px da inviare in blocco
/// </summary>
+49 -17
View File
@@ -11,32 +11,23 @@ namespace IOB_UT_NEXT.Iob
/// </summary>
public class DateTimeHelper
{
#region Public Fields
/// <summary>
/// Data/ora ultimo avvio adapter
/// </summary>
public DateTime AvvioAdp = DateTime.Now;
/// <summary>
/// Data/ora ultimo spegnimento adapter
/// </summary>
public DateTime StopAdp = DateTime.Now;
/// <summary>
/// Indicazione VETO check status IOB x evitare loop troppo stretti...
/// </summary>
public DateTime VetoCheckIOB = DateTime.Now.AddDays(-1);
/// <summary>
/// Indicazione VETO check sync ricette x evitare loop troppo stretti...
/// </summary>
public DateTime VetoCheckSyncRecipe = DateTime.Now.AddHours(-1);
/// <summary>
/// dataOra ultima verifica CNC disconnesso...
/// </summary>
public DateTime lastDisconnCheck;
/// <summary>
/// ultimo controllo decremento eventi
/// </summary>
public DateTime lastEvCheck;
/// <summary>
/// Data/ora ultima volta che IOB è stato dichiarato online
/// </summary>
@@ -57,7 +48,6 @@ namespace IOB_UT_NEXT.Iob
/// </summary>
public DateTime lastPING = DateTime.Now.AddHours(-1);
/// <summary>
/// Ultimo controllo ping x evitare ping flood...
/// </summary>
@@ -67,5 +57,47 @@ namespace IOB_UT_NEXT.Iob
/// DataOra ultima lettura da PLC
/// </summary>
public DateTime lastReadPLC;
/// <summary>
/// Ultimo istante in cui sono stati ridotti dati simulazione duration
/// </summary>
public DateTime lastRedDuration;
/// <summary>
/// DateTime Ultimo valore simulazione generato
/// </summary>
public DateTime lastSim;
/// <summary>
/// Ultimo istante in cui sono stati generati dati di simulazione
/// </summary>
public DateTime lastSimData;
/// <summary>
/// dataOra ultimo segnale inviato al SERVER...
/// </summary>
public DateTime lastWatchDog;
/// <summary>
/// dataOra ultimo segnale inviato a macchina/PLC...
/// </summary>
public DateTime lastWatchDogPLC = DateTime.Now;
/// <summary>
/// Data/ora ultimo spegnimento adapter
/// </summary>
public DateTime StopAdp = DateTime.Now;
/// <summary>
/// Indicazione VETO check status IOB x evitare loop troppo stretti...
/// </summary>
public DateTime VetoCheckIOB = DateTime.Now.AddDays(-1);
/// <summary>
/// Indicazione VETO check sync ricette x evitare loop troppo stretti...
/// </summary>
public DateTime VetoCheckSyncRecipe = DateTime.Now.AddHours(-1);
#endregion Public Fields
}
}
}
+1 -1
View File
@@ -2167,7 +2167,7 @@ namespace IOB_WIN_FORM
queueUlLen = ulQueueLen,
counterIOB = iobObj.contapezziIOB,
counterMAC = iobObj.contapezziPLC,
lastUpdate = lastIobStatus.lastUpdate > iobObj.lastWatchDog ? lastIobStatus.lastUpdate : iobObj.lastWatchDog,
lastUpdate = lastIobStatus.lastUpdate > iobObj.DtHelp.lastWatchDog ? lastIobStatus.lastUpdate : iobObj.DtHelp.lastWatchDog,
online = utils.IOB_Online,
lastDataIn = iobObj.DtHelp.lastReadPLC,
lastDataOut = iobObj.DtHelp.lastIobOnline,
+8 -8
View File
@@ -3197,7 +3197,7 @@ namespace IOB_WIN_FORM.Iob
// riporto cosa inviato
currDispData.newUrlCallData = lastUrl;
// aggiorno data ultimo watchdog...
lastWatchDog = DateTime.Now;
DtHelp.lastWatchDog = DateTime.Now;
}
catch
{
@@ -3288,7 +3288,7 @@ namespace IOB_WIN_FORM.Iob
nSendOut++;
currDispData.newUrlCallData = lastUrl;
// aggiorno data ultimo watchdog...
lastWatchDog = DateTime.Now;
DtHelp.lastWatchDog = DateTime.Now;
}
catch
{
@@ -3361,7 +3361,7 @@ namespace IOB_WIN_FORM.Iob
parentForm.commPlcActive = false;
adpRunning = true;
DtHelp.AvvioAdp = adesso;
lastWatchDog = scaduto;
DtHelp.lastWatchDog = scaduto;
DtHelp.lastPING = scaduto;
DtHelp.lastReadPLC = scaduto;
DtHelp.lastDisconnCheck = scaduto;
@@ -9220,7 +9220,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 > IOBConfFull.General.WatchDogSec)
if (DateTime.Now.Subtract(DtHelp.lastWatchDog).TotalSeconds > IOBConfFull.General.WatchDogSec)
{
string wdStatus = "elapsed";
string sVal = string.Format("[WDST]{0}", wdStatus);
@@ -9234,7 +9234,7 @@ namespace IOB_WIN_FORM.Iob
trackDynData("WDST", wdStatus);
}
}
lastWatchDog = DateTime.Now;
DtHelp.lastWatchDog = DateTime.Now;
sendOnMachineOff = true;
lgInfo("Impostato sendOnMachineOff a true");
}
@@ -9266,7 +9266,7 @@ namespace IOB_WIN_FORM.Iob
listaValori.Add(currVal);
}
await sendDataBlock(urlType.FLog, listaValori);
lastWatchDog = DateTime.Now;
DtHelp.lastWatchDog = DateTime.Now;
}
else
{
@@ -9277,7 +9277,7 @@ namespace IOB_WIN_FORM.Iob
// svuoto! NO redis
QueueFLog = new DataQueue(IOBConfFull.General.FilenameIOB, "QueueFLog", false, redisMan);
//QueueFLog = new DataQueue(IOBConfFull.General.FilenameIOB, "QueueFLog", IOBConfFull.General.EnabRedisQue, redisMan);
lastWatchDog = DateTime.Now;
DtHelp.lastWatchDog = DateTime.Now;
}
}
else
@@ -9285,7 +9285,7 @@ namespace IOB_WIN_FORM.Iob
// INVIO SINGOLO...!!!
QueueFLog.TryDequeue(out currVal);
await sendToMoonPro(urlType.FLog, currVal);
lastWatchDog = DateTime.Now;
DtHelp.lastWatchDog = DateTime.Now;
}
}
else
+2 -2
View File
@@ -121,7 +121,7 @@ namespace IOB_WIN_FORM.Iob
{
connectionOk = true;
DtHelp.lastReadPLC = DateTime.Now;
lastWatchDog = DateTime.Now;
DtHelp.lastWatchDog = DateTime.Now;
}
else
{
@@ -157,7 +157,7 @@ namespace IOB_WIN_FORM.Iob
base.startAdapter(resetQueue);
// 2023.09.05 imposto anche primo ping e check disconnected...
DateTime adesso = DateTime.Now;
lastWatchDog = adesso;
DtHelp.lastWatchDog = adesso;
DtHelp.lastReadPLC = adesso;
DtHelp.lastDisconnCheck = adesso;
// faccio un primo check POST ritardo
+9 -25
View File
@@ -73,9 +73,9 @@ namespace IOB_WIN_FORM.Iob
DateTime adesso = DateTime.Now;
lastPzCountSend = adesso;
lastWarnODL = adesso;
lastEvCheck = adesso;
lastSimData = adesso;
lastRedDuration = adesso;
DtHelp.lastEvCheck = adesso;
DtHelp.lastSimData = adesso;
DtHelp.lastRedDuration = adesso;
// abilito subito scrittura coda IN
queueInEnabCurr = true;
// setup allarmi simulati
@@ -151,7 +151,6 @@ namespace IOB_WIN_FORM.Iob
}
}
#endregion Public Constructors
#region Public Methods
@@ -378,7 +377,7 @@ namespace IOB_WIN_FORM.Iob
// valore non presente in vers default... se gestito fare override
Dictionary<string, string> outVal = new Dictionary<string, string>();
// verificare periodo SIM parametri... se passato li invio altrimenti NO... FIX a 20 sec
if (lastSimData.AddSeconds(waitSimPar) < DateTime.Now && memMap != null)
if (DtHelp.lastSimData.AddSeconds(waitSimPar) < DateTime.Now && memMap != null)
{
Random rnd = new Random();
// controllo conf memorie json (se ci sono...)
@@ -460,7 +459,7 @@ namespace IOB_WIN_FORM.Iob
}
catch
{ }
lastSimData = DateTime.Now;
DtHelp.lastSimData = DateTime.Now;
}
return outVal;
}
@@ -549,7 +548,7 @@ namespace IOB_WIN_FORM.Iob
/// </summary>
public override void processVHF()
{
if (lastEvCheck.AddMilliseconds(periodoMSec) < DateTime.Now)
if (DtHelp.lastEvCheck.AddMilliseconds(periodoMSec) < DateTime.Now)
{
// decremento contatore ultimo evento
if (bit2 != null)
@@ -572,7 +571,7 @@ namespace IOB_WIN_FORM.Iob
if (simRS != null)
simRS.wait--;
lastEvCheck = DateTime.Now;
DtHelp.lastEvCheck = DateTime.Now;
}
}
@@ -768,21 +767,6 @@ namespace IOB_WIN_FORM.Iob
protected bool disableSimStatus = false;
/// <summary>
/// ultimo controllo decremento eventi
/// </summary>
protected DateTime lastEvCheck;
/// <summary>
/// Ultimo istante in cui sono stati ridotti dati simulazione duration
/// </summary>
protected DateTime lastRedDuration;
/// <summary>
/// Ultimo istante in cui sono stati generati dati di simulazione
/// </summary>
protected DateTime lastSimData;
/// <summary>
/// Cartella logfile x test import (tipo Soitaab)
/// </summary>
@@ -1036,7 +1020,7 @@ namespace IOB_WIN_FORM.Iob
/// <param name="bit2proc"></param>
protected void tryRedDuration(int bit2proc)
{
if (lastRedDuration.AddMilliseconds(periodoMSec / 20) < DateTime.Now)
if (DtHelp.lastRedDuration.AddMilliseconds(periodoMSec / 20) < DateTime.Now)
{
switch (bit2proc)
{
@@ -1067,7 +1051,7 @@ namespace IOB_WIN_FORM.Iob
default:
break;
}
lastRedDuration = DateTime.Now;
DtHelp.lastRedDuration = DateTime.Now;
}
}
+2 -2
View File
@@ -413,7 +413,7 @@ namespace IOB_WIN_FTP.Iob
}
DtHelp.lastReadPLC = adesso;
lastWatchDog = adesso;
DtHelp.lastWatchDog = adesso;
}
else
{
@@ -444,7 +444,7 @@ namespace IOB_WIN_FTP.Iob
base.startAdapter(resetQueue);
// 2023.09.05 imposto anche primo ping e check disconnected...
DateTime adesso = DateTime.Now;
lastWatchDog = adesso;
DtHelp.lastWatchDog = adesso;
//DtHelp.lastPING = adesso;
DtHelp.lastReadPLC = adesso;
DtHelp.lastDisconnCheck = adesso;
+1 -1
View File
@@ -87,7 +87,7 @@ namespace IOB_WIN_MBUS.IobModbusTCP
B_input = 0;
}
DtHelp.lastReadPLC = DateTime.Now;
lastWatchDog = adesso;
DtHelp.lastWatchDog = adesso;
}
+2 -2
View File
@@ -1636,9 +1636,9 @@ namespace IOB_WIN_OPC_UA.IobOpc
if (opcUaParams.WatchDog.IsEnabled)
{
lgTrace("WatchDog 01");
if (adesso.Subtract(lastWatchDogPLC).TotalSeconds > 2)
if (adesso.Subtract(DtHelp.lastWatchDogPLC).TotalSeconds > 2)
{
lastWatchDogPLC = adesso;
DtHelp.lastWatchDogPLC = adesso;
WatchDog++;
WatchDog = WatchDog > opcUaParams.WatchDog.MaxVal ? 0 : WatchDog;
+2 -2
View File
@@ -143,9 +143,9 @@ namespace IOB_WIN_OPC_UA.IobOpc
// se abilitato watchdog...
if (opcUaParams.WatchDog.IsEnabled)
{
if (adesso.Subtract(lastWatchDogPLC).TotalSeconds > 2)
if (adesso.Subtract(DtHelp.lastWatchDogPLC).TotalSeconds > 2)
{
lastWatchDogPLC = adesso;
DtHelp.lastWatchDogPLC = adesso;
WatchDog++;
WatchDog = WatchDog > opcUaParams.WatchDog.MaxVal ? 0 : WatchDog;
+2 -2
View File
@@ -147,9 +147,9 @@ namespace IOB_WIN_OPC_UA.IobOpc
// se abilitato watchdog...
if (opcUaParams.WatchDog.IsEnabled)
{
if (adesso.Subtract(lastWatchDogPLC).TotalSeconds > 2)
if (adesso.Subtract(DtHelp.lastWatchDogPLC).TotalSeconds > 2)
{
lastWatchDogPLC = adesso;
DtHelp.lastWatchDogPLC = adesso;
WatchDog++;
WatchDog = WatchDog > opcUaParams.WatchDog.MaxVal ? 0 : WatchDog;
+2 -2
View File
@@ -137,9 +137,9 @@ namespace IOB_WIN_OPC_UA.IobOpc
// se abilitato watchdog...
if (opcUaParams.WatchDog.IsEnabled)
{
if (adesso.Subtract(lastWatchDogPLC).TotalSeconds > 2)
if (adesso.Subtract(DtHelp.lastWatchDogPLC).TotalSeconds > 2)
{
lastWatchDogPLC = adesso;
DtHelp.lastWatchDogPLC = adesso;
WatchDog++;
WatchDog = WatchDog > opcUaParams.WatchDog.MaxVal ? 0 : WatchDog;
+2 -2
View File
@@ -147,9 +147,9 @@ namespace IOB_WIN_OPC_UA.IobOpc
// se abilitato watchdog...
if (opcUaParams.WatchDog.IsEnabled)
{
if (adesso.Subtract(lastWatchDogPLC).TotalSeconds > 2)
if (adesso.Subtract(DtHelp.lastWatchDogPLC).TotalSeconds > 2)
{
lastWatchDogPLC = adesso;
DtHelp.lastWatchDogPLC = adesso;
WatchDog++;
WatchDog = WatchDog > opcUaParams.WatchDog.MaxVal ? 0 : WatchDog;
+2 -2
View File
@@ -144,9 +144,9 @@ namespace IOB_WIN_OPC_UA.IobOpc
// se abilitato watchdog...
if (opcUaParams.WatchDog.IsEnabled)
{
if (adesso.Subtract(lastWatchDogPLC).TotalSeconds > 2)
if (adesso.Subtract(DtHelp.lastWatchDogPLC).TotalSeconds > 2)
{
lastWatchDogPLC = adesso;
DtHelp.lastWatchDogPLC = adesso;
WatchDog++;
WatchDog = WatchDog > opcUaParams.WatchDog.MaxVal ? 0 : WatchDog;
+2 -2
View File
@@ -360,9 +360,9 @@ namespace IOB_WIN_OPC_UA.IobOpc
// se abilitato watchdog...
if (opcUaParams.WatchDog.IsEnabled)
{
if (adesso.Subtract(lastWatchDogPLC).TotalSeconds > 2)
if (adesso.Subtract(DtHelp.lastWatchDogPLC).TotalSeconds > 2)
{
lastWatchDogPLC = adesso;
DtHelp.lastWatchDogPLC = adesso;
WatchDog++;
WatchDog = WatchDog > opcUaParams.WatchDog.MaxVal ? 0 : WatchDog;
+2 -2
View File
@@ -160,9 +160,9 @@ namespace IOB_WIN_OPC_UA.IobOpc
// se abilitato watchdog...
if (opcUaParams.WatchDog.IsEnabled)
{
if (adesso.Subtract(lastWatchDogPLC).TotalSeconds > 2)
if (adesso.Subtract(DtHelp.lastWatchDogPLC).TotalSeconds > 2)
{
lastWatchDogPLC = adesso;
DtHelp.lastWatchDogPLC = adesso;
WatchDog++;
WatchDog = WatchDog > opcUaParams.WatchDog.MaxVal ? 0 : WatchDog;
+2 -2
View File
@@ -146,9 +146,9 @@ namespace IOB_WIN_OPC_UA.IobOpc
// se abilitato watchdog...
if (opcUaParams.WatchDog.IsEnabled)
{
if (adesso.Subtract(lastWatchDogPLC).TotalSeconds > 2)
if (adesso.Subtract(DtHelp.lastWatchDogPLC).TotalSeconds > 2)
{
lastWatchDogPLC = adesso;
DtHelp.lastWatchDogPLC = adesso;
WatchDog++;
WatchDog = WatchDog > opcUaParams.WatchDog.MaxVal ? 0 : WatchDog;
+2 -2
View File
@@ -160,7 +160,7 @@ namespace IOB_WIN_SHELLY.Iob
B_input = 0;
}
DtHelp.lastReadPLC = DateTime.Now;
lastWatchDog = adesso;
DtHelp.lastWatchDog = adesso;
}
public override void startAdapter(bool resetQueue)
@@ -168,7 +168,7 @@ namespace IOB_WIN_SHELLY.Iob
base.startAdapter(resetQueue);
// 2023.09.05 imposto anche primo ping e check disconnected...
DateTime adesso = DateTime.Now;
lastWatchDog = adesso;
DtHelp.lastWatchDog = adesso;
//DtHelp.lastPING = adesso;
DtHelp.lastReadPLC = adesso;
DtHelp.lastDisconnCheck = adesso;
+2 -2
View File
@@ -235,7 +235,7 @@ namespace IOB_WIN_SHELLY.Iob
B_input = 0;
}
DtHelp.lastReadPLC = DateTime.Now;
lastWatchDog = adesso;
DtHelp.lastWatchDog = adesso;
}
public override void startAdapter(bool resetQueue)
@@ -243,7 +243,7 @@ namespace IOB_WIN_SHELLY.Iob
base.startAdapter(resetQueue);
// 2023.09.05 imposto anche primo ping e check disconnected...
DateTime adesso = DateTime.Now;
lastWatchDog = adesso;
DtHelp.lastWatchDog = adesso;
//DtHelp.lastPING = adesso;
DtHelp.lastReadPLC = adesso;
DtHelp.lastDisconnCheck = adesso;
+5 -15
View File
@@ -249,16 +249,6 @@ namespace IOB_WIN
/// </summary>
public string lastSignInVal = "";
/// <summary>
/// DateTime Ultimo valore simulazione generato
/// </summary>
public DateTime lastSim;
/// <summary>
/// dataOra ultimo segnale inviato...
/// </summary>
public DateTime lastWatchDog;
/// <summary>
/// Massimo numero di px da inviare in blocco
/// </summary>
@@ -1832,13 +1822,13 @@ namespace IOB_WIN
private void svuotaCodaFLog()
{
//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(DtHelp.lastWatchDog).TotalSeconds > utils.CRI("watchdogMaxSec"))
{
string wdStatus = "elapsed";
string sVal = string.Format("[WDST]{0}", wdStatus);
// chiamo accodamento...
accodaFLog(sVal, qEncodeFLog("WDST", wdStatus));
lastWatchDog = DateTime.Now;
DtHelp.lastWatchDog = DateTime.Now;
}
// verifico SE la coda abbia dei valori...
if (QueueFLog.Count > 0)
@@ -4295,7 +4285,7 @@ namespace IOB_WIN
// riporto cosa inviato
currDispData.newUrlCallData = lastUrl;
// aggiorno data ultimo watchdog...
lastWatchDog = DateTime.Now;
DtHelp.lastWatchDog = DateTime.Now;
}
catch
{
@@ -4384,7 +4374,7 @@ namespace IOB_WIN
#endif
currDispData.newUrlCallData = lastUrl;
// aggiorno data ultimo watchdog...
lastWatchDog = DateTime.Now;
DtHelp.lastWatchDog = DateTime.Now;
}
catch
{
@@ -4437,7 +4427,7 @@ namespace IOB_WIN
parentForm.commPlcActive = false;
adpRunning = true;
DtHelp.AvvioAdp = DateTime.Now;
lastWatchDog = DtHelp.AvvioAdp;
DtHelp.lastWatchDog = DtHelp.AvvioAdp;
DtHelp.lastPING = DtHelp.AvvioAdp;
DtHelp.lastReadPLC = DtHelp.AvvioAdp.AddMinutes(-1);
DtHelp.lastDisconnCheck = DtHelp.AvvioAdp;
+7 -12
View File
@@ -47,12 +47,7 @@ namespace IOB_WIN
/// <summary>
/// ultimo controllo decremento eventi
/// </summary>
protected DateTime lastEvCheck;
/// <summary>
/// Ultimo istante in cui sono stati generati dati di simulazione
/// </summary>
protected DateTime lastSimData;
protected DateTime DtHelp.lastEvCheck;
/// <summary>
/// Durata minima ODL x reset quando pezzi iob > pezzi macchina...
@@ -114,8 +109,8 @@ namespace IOB_WIN
DateTime adesso = DateTime.Now;
lastPzCountSend = adesso;
lastWarnODL = adesso;
lastEvCheck = adesso;
lastSimData = adesso;
DtHelp.lastEvCheck = adesso;
DtHelp.lastSimData = adesso;
// sistemo parametri x simulazione...
if (cIobConf.optPar.Count > 0)
{
@@ -642,7 +637,7 @@ namespace IOB_WIN
// valore non presente in vers default... se gestito fare override
Dictionary<string, string> outVal = new Dictionary<string, string>();
// verificare periodo SIM parametri... se passato li invio altrimenti NO... FIX a 20 sec
if (lastSimData.AddSeconds(waitSimPar) < DateTime.Now)
if (DtHelp.lastSimData.AddSeconds(waitSimPar) < DateTime.Now)
{
Random rnd = new Random();
// controllo conf memorie json (se ci sono...)
@@ -667,7 +662,7 @@ namespace IOB_WIN
}
catch
{ }
lastSimData = DateTime.Now;
DtHelp.lastSimData = DateTime.Now;
}
return outVal;
}
@@ -706,14 +701,14 @@ namespace IOB_WIN
/// </summary>
public override void processVHF()
{
if (lastEvCheck.AddMilliseconds(periodoMSec) < DateTime.Now)
if (DtHelp.lastEvCheck.AddMilliseconds(periodoMSec) < DateTime.Now)
{
// decremento contatore ultimo evento
bit2.wait--;
bit3.wait--;
bit4.wait--;
bit5.wait--;
lastEvCheck = DateTime.Now;
DtHelp.lastEvCheck = DateTime.Now;
}
}