From 46d4eade148cd2a57ee16e8cfd6089cb10eb408a Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Tue, 19 May 2026 12:41:56 +0200 Subject: [PATCH] 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 +