From 46d4eade148cd2a57ee16e8cfd6089cb10eb408a Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Tue, 19 May 2026 12:41:56 +0200 Subject: [PATCH 1/3] Update ping adapter --- IOB-WIN-FORM/Iob/Generic.Public.cs | 17 ------- IOB-WIN-FORM/Iob/PingWatchDog.cs | 21 +++++++-- IOB-WIN-PING/DATA/CONF/3023-PING.ini | 10 ++-- IOB-WIN-PING/DATA/CONF/MAIN.ini | 4 +- IOB-WIN-SIEMENS/DATA/CONF/3023-PING.ini | 63 +++++++++++++++++++++++++ 5 files changed, 89 insertions(+), 26 deletions(-) create mode 100644 IOB-WIN-SIEMENS/DATA/CONF/3023-PING.ini diff --git a/IOB-WIN-FORM/Iob/Generic.Public.cs b/IOB-WIN-FORM/Iob/Generic.Public.cs index 9368bb5e..72ec9b51 100644 --- a/IOB-WIN-FORM/Iob/Generic.Public.cs +++ b/IOB-WIN-FORM/Iob/Generic.Public.cs @@ -858,23 +858,6 @@ namespace IOB_WIN_FORM.Iob } else { - //// anche se NON connesso alcuni task di bassa freq li eseguo... - //if (ciclo == gatherCycle.LF) - //{ - // // verifico se devo gestire cambio ODL in modo automatico - // await ProcessAutoOdlAsync(); - // // verifico se devo gestire auto generazione dossier quotidiana - // ProcessAutoDossier(); - // // effettua gestione import file se configurato... - // await ProcessFileImportAsync(); - // // effettua process ritorno ricette - // await ProcessRecipeFileRetAsync(); - //} - //else if (ciclo == gatherCycle.VLF) - //{ - // processRecipeSyncArch(); - //} - // provo a riconnettere SE abilitato tryRestart... if (adpTryRestart && !connectionOk) { diff --git a/IOB-WIN-FORM/Iob/PingWatchDog.cs b/IOB-WIN-FORM/Iob/PingWatchDog.cs index 18b890fe..3fa4d2ae 100644 --- a/IOB-WIN-FORM/Iob/PingWatchDog.cs +++ b/IOB-WIN-FORM/Iob/PingWatchDog.cs @@ -55,17 +55,28 @@ namespace IOB_WIN_FORM.Iob { // effettuo check ping! DateTime adesso = DateTime.Now; - if (adesso.Subtract(lastPING).TotalSeconds >= PoweroffTimeoutSec) + var lastCheck = lastPING < lastReadPLC ? lastReadPLC : lastReadPLC; + if (adesso.Subtract(lastCheck).TotalSeconds >= PoweroffTimeoutSec) { + // gestione invio anche in caso di disconnessione // invio poweroff! newDisplayData currDispData = new newDisplayData(); - readSemafori(ref currDispData); + try + { + readSemafori(ref currDispData); + } + catch(Exception exc) + { + lgError($"Eccezione in processDisconnectedTask{Environment.NewLine}{exc}"); + } + lgDebug($"processDisconnectedTask | B_output: {B_output}"); // SOLO SE ho poweroff da inviare... if (B_output == 0) { accodaSigIN(ref currDispData); // reset last ping... lastPING = DateTime.Now; + lastReadPLC = DateTime.Now; } } } @@ -142,7 +153,6 @@ namespace IOB_WIN_FORM.Iob // 2023.09.05 imposto anche primo ping e check disconnected... DateTime adesso = DateTime.Now; lastWatchDog = adesso; - //lastPING = adesso; lastReadPLC = adesso; lastDisconnCheck = adesso; // faccio un primo check POST ritardo @@ -191,6 +201,9 @@ namespace IOB_WIN_FORM.Iob { // loggo no risposta ping ... lgError("PING KO"); + queueInEnabCurr = true; + processDisconnectedTask(); + queueInEnabCurr = false; } } } @@ -255,7 +268,7 @@ namespace IOB_WIN_FORM.Iob long numOk = listaValori.Where(x => x == "1").Count(); long numKo = numVal - numOk; answ = numOk >= numKo; - lgTrace($"PING ok per: {numOk} > {numKo}"); + lgTrace($"PING | numOK:{numOk} | numKO: {numKo}"); } else { diff --git a/IOB-WIN-PING/DATA/CONF/3023-PING.ini b/IOB-WIN-PING/DATA/CONF/3023-PING.ini index 69998dc9..ec3d2e6d 100644 --- a/IOB-WIN-PING/DATA/CONF/3023-PING.ini +++ b/IOB-WIN-PING/DATA/CONF/3023-PING.ini @@ -9,15 +9,17 @@ VENDOR=STEAMWARE MODEL=WATCHDOG [CNC] -IP=192.168.1.151 -;IP=192.168.1.7 +;IP=192.168.1.151 +IP=192.168.1.8 PORT=0000 [SERVER] MPIP=http://192.168.1.7 -MPURL=/MP/IO +MPURL=/MP/RIOC/api +APICLASS=IOB CMDBASE=/IOB/input/ CMDFLOG=/IOB/flog/ +CMDULOG=/IOB/ulog/ CMDALIVE=/IOB CMDENABLED=/IOB/enabled/ CMDADV1=?valore= @@ -30,6 +32,7 @@ MAX_COUNTER_BLINK = 15 BLINK_FILT=0 [OPTPAR] +MAX_ERR_CHECK=10 timerIntMs=300 VETO_QUEUE_IN=15 AUTO_CHANGE_ODL=false @@ -57,3 +60,4 @@ Customer=JETCO HostOS=WIN HostName=IOB-WIN-09 HostAddr=192.168.1.133 + diff --git a/IOB-WIN-PING/DATA/CONF/MAIN.ini b/IOB-WIN-PING/DATA/CONF/MAIN.ini index ab68298b..6c58c8da 100644 --- a/IOB-WIN-PING/DATA/CONF/MAIN.ini +++ b/IOB-WIN-PING/DATA/CONF/MAIN.ini @@ -15,8 +15,8 @@ CLI_INST=SteamWareSim ;STARTLIST=PING ;STARTLIST=SIMUL_01 ;STARTLIST=FTP-PING -STARTLIST=SIMUL_08 -;STARTLIST=3024-PING ;STARTLIST=3023-PING,3024-PING +;STARTLIST=SIMUL_08 +STARTLIST=3023-PING MAXCNC=10 diff --git a/IOB-WIN-SIEMENS/DATA/CONF/3023-PING.ini b/IOB-WIN-SIEMENS/DATA/CONF/3023-PING.ini new file mode 100644 index 00000000..ec3d2e6d --- /dev/null +++ b/IOB-WIN-SIEMENS/DATA/CONF/3023-PING.ini @@ -0,0 +1,63 @@ +;Configurazione IOB-WIN +[IOB] +CNCTYPE=PingWatchdog +PING_MS_TIMEOUT=500 +IOB_NAME=3023 + +[MACHINE] +VENDOR=STEAMWARE +MODEL=WATCHDOG + +[CNC] +;IP=192.168.1.151 +IP=192.168.1.8 +PORT=0000 + +[SERVER] +MPIP=http://192.168.1.7 +MPURL=/MP/RIOC/api +APICLASS=IOB +CMDBASE=/IOB/input/ +CMDFLOG=/IOB/flog/ +CMDULOG=/IOB/ulog/ +CMDALIVE=/IOB +CMDENABLED=/IOB/enabled/ +CMDADV1=?valore= +CMDREBO=/sendReboot.aspx?idxMacchina= + +[MEMORY] + +[BLINK] +MAX_COUNTER_BLINK = 15 +BLINK_FILT=0 + +[OPTPAR] +MAX_ERR_CHECK=10 +timerIntMs=300 +VETO_QUEUE_IN=15 +AUTO_CHANGE_ODL=false +POWEROFF_TIMEOUT_SEC=60 +DISABLE_PZCOUNT=TRUE +;; gestioni PING +;MAX_TRY_PING=3 +;VETO_QUEUE_IN=4 +;VETO_PING_SEC=4 +;VETO_CHECKDIR_SEC=10 +;MAX_ELAPSED_TIME_SEC=60 +;VETO_SEND_SNAPSHOT=3 +VETO_SIG_IN=false +B_IN_OFF=0 +B_IN_ON=129 +VETO_PING_SEC=6 +VETO_SCADUTO=TRUE + +[BRANCH] +NAME=master + +; Tags manuali +[TAGS] +Customer=JETCO +HostOS=WIN +HostName=IOB-WIN-09 +HostAddr=192.168.1.133 + From 3634d7e4ac36d32298bb8c6c5168c710bc175d2e Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Tue, 19 May 2026 16:16:51 +0200 Subject: [PATCH 2/3] Update comportamento watchdog ping --- IOB-WIN-FORM/Iob/PingWatchDog.cs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/IOB-WIN-FORM/Iob/PingWatchDog.cs b/IOB-WIN-FORM/Iob/PingWatchDog.cs index 3fa4d2ae..56843e48 100644 --- a/IOB-WIN-FORM/Iob/PingWatchDog.cs +++ b/IOB-WIN-FORM/Iob/PingWatchDog.cs @@ -65,7 +65,7 @@ namespace IOB_WIN_FORM.Iob { readSemafori(ref currDispData); } - catch(Exception exc) + catch (Exception exc) { lgError($"Eccezione in processDisconnectedTask{Environment.NewLine}{exc}"); } @@ -144,7 +144,9 @@ namespace IOB_WIN_FORM.Iob } sw.Stop(); // fermo per una quota del tempo di attesa previsto - Task.Delay(vetoCheckSec - (int)sw.ElapsedMilliseconds + 20); + int nextWait = vetoCheckSec * 1000 - (int)sw.ElapsedMilliseconds + 20; + nextWait = nextWait < 0 ? 10 : nextWait; + Task.Delay(nextWait); } public override void startAdapter(bool resetQueue) @@ -168,8 +170,6 @@ namespace IOB_WIN_FORM.Iob lgDebug($"PING: tryConnect step 01 | connectionOk: {connectionOk}"); if (!connectionOk) { - //// resetto coda... - //QueuePing = new DataQueue("000", "QueuePing", false); // controllo che il ping sia stato tentato almeno pingTestSec fa... if (DateTime.Now.Subtract(lastPING).TotalSeconds > utils.CRI("pingTestSec")) { @@ -201,6 +201,7 @@ namespace IOB_WIN_FORM.Iob { // loggo no risposta ping ... lgError("PING KO"); + // 2026.05.19 aggiunta esecuzione disconnect queueInEnabCurr = true; processDisconnectedTask(); queueInEnabCurr = false; @@ -240,7 +241,7 @@ namespace IOB_WIN_FORM.Iob // controllo: se era spenta e risulta ping ok --> reset coda! if (B_input == 0 && pingOk) { - B_input = 1; + B_input = bInOn; QueuePing = new DataQueue(IOBConfFull.General.FilenameIOB, "QueuePing", false, redisMan); lgTrace($"QueuePing resetted on addTest"); } From 88126ee0c7dba72596c04b47f86227c828d482f1 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Tue, 19 May 2026 16:19:04 +0200 Subject: [PATCH 3/3] forzo IP x recompile --- IOB-WIN-PING/DATA/CONF/3023-PING.ini | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/IOB-WIN-PING/DATA/CONF/3023-PING.ini b/IOB-WIN-PING/DATA/CONF/3023-PING.ini index ec3d2e6d..80e1b769 100644 --- a/IOB-WIN-PING/DATA/CONF/3023-PING.ini +++ b/IOB-WIN-PING/DATA/CONF/3023-PING.ini @@ -9,8 +9,8 @@ VENDOR=STEAMWARE MODEL=WATCHDOG [CNC] -;IP=192.168.1.151 -IP=192.168.1.8 +IP=192.168.1.151 +;IP=192.168.1.8 PORT=0000 [SERVER]