From 9e5f9be47695e47e285c7505d98fc982bf4f5ae7 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 6 May 2026 07:24:27 +0200 Subject: [PATCH 1/2] SIEMENS: tolta (inutile) gestione contapezzi macchina in remoto --- IOB-UT-NEXT/baseUtils.cs | 2 +- IOB-WIN-FORM/Iob/Generic.Protected.cs | 6 ++- IOB-WIN-MBUS/App.config | 2 +- IOB-WIN-MBUS/IobModbustTCP/ModbusTCP.cs | 2 +- IOB-WIN-SIEMENS/DATA/CONF/MAIN.ini | 3 +- IOB-WIN-SIEMENS/IOB-WIN-SIEMENS.csproj | 8 ++- IOB-WIN-SIEMENS/IobSiemens/SiemensTorri.cs | 60 +++++----------------- IOB-WIN/GlobalSuppressions.cs | 1 - 8 files changed, 28 insertions(+), 56 deletions(-) diff --git a/IOB-UT-NEXT/baseUtils.cs b/IOB-UT-NEXT/baseUtils.cs index 13fcf4be..c39aa38b 100644 --- a/IOB-UT-NEXT/baseUtils.cs +++ b/IOB-UT-NEXT/baseUtils.cs @@ -66,7 +66,7 @@ namespace IOB_UT_NEXT // NextDouble() ∈ [0.0, 1.0) → fattore ∈ [-1.0, 1.0) double factor = rnd.NextDouble() * 2.0 - 1.0; // ±10% - return (int)(value * (1.0 + 0.10 * factor)); + return (int)(value * (1.0 + 0.20 * factor)); } } diff --git a/IOB-WIN-FORM/Iob/Generic.Protected.cs b/IOB-WIN-FORM/Iob/Generic.Protected.cs index 6a1bc7a1..dd9893dc 100644 --- a/IOB-WIN-FORM/Iob/Generic.Protected.cs +++ b/IOB-WIN-FORM/Iob/Generic.Protected.cs @@ -1089,13 +1089,15 @@ namespace IOB_WIN_FORM.Iob get => $@"{urlCommandIob("setCounter")}?counter="; } +#if false /// /// URL per salvataggio contapezzi (quelli della macchina: PLC/CNC)... /// protected string urlSetPzCountMAC { get => $@"{urlCommand("setCounter")}MAC_{IOBConfFull.General.CodIOB}?counter="; - } + } +#endif /// /// URL per effettuare salvataggio parametri (snapshot) macchina... @@ -6108,7 +6110,7 @@ namespace IOB_WIN_FORM.Iob } // Imposto il veto per il prossimo controllo (se ConnOk + rapido sennò meno rapido) - var msWait = baseUtils.nextPauseSendMSec * (connectionOk ? 6 : 100); + var msWait = baseUtils.nextPauseSendMSec * (connectionOk ? 12 : 150); dtVetoCheckIOB = adesso.AddMilliseconds(msWait); } diff --git a/IOB-WIN-MBUS/App.config b/IOB-WIN-MBUS/App.config index 06b8390b..31deea4f 100644 --- a/IOB-WIN-MBUS/App.config +++ b/IOB-WIN-MBUS/App.config @@ -48,7 +48,7 @@ - + diff --git a/IOB-WIN-MBUS/IobModbustTCP/ModbusTCP.cs b/IOB-WIN-MBUS/IobModbustTCP/ModbusTCP.cs index 7c7f4a59..1ecd3227 100644 --- a/IOB-WIN-MBUS/IobModbustTCP/ModbusTCP.cs +++ b/IOB-WIN-MBUS/IobModbustTCP/ModbusTCP.cs @@ -2350,7 +2350,7 @@ namespace IOB_WIN_MBUS.IobModbusTCP // se > max errori --> disconnetto if (currReadErrors > maxReadErrors) { - lgError($"Superato limite errori Read ({currReadErrors}) --> tryDisconnect"); + lgError($"Read Errors: Superato limite --> tryDisconnect | currReadErrors: {currReadErrors} | maxReadErrors: {maxReadErrors}"); currReadErrors = 0; tryDisconnect(); } diff --git a/IOB-WIN-SIEMENS/DATA/CONF/MAIN.ini b/IOB-WIN-SIEMENS/DATA/CONF/MAIN.ini index 085e681a..babafa34 100644 --- a/IOB-WIN-SIEMENS/DATA/CONF/MAIN.ini +++ b/IOB-WIN-SIEMENS/DATA/CONF/MAIN.ini @@ -38,7 +38,8 @@ CLI_INST=SteamWareSim ;STARTLIST=3010 ;STARTLIST=PIZ03 ;STARTLIST=3020 -STARTLIST=SIMUL_01 +;STARTLIST=SIMUL_01 +STARTLIST=3010 MAXCNC=10 diff --git a/IOB-WIN-SIEMENS/IOB-WIN-SIEMENS.csproj b/IOB-WIN-SIEMENS/IOB-WIN-SIEMENS.csproj index c0f3f370..88c6d09c 100644 --- a/IOB-WIN-SIEMENS/IOB-WIN-SIEMENS.csproj +++ b/IOB-WIN-SIEMENS/IOB-WIN-SIEMENS.csproj @@ -186,8 +186,12 @@ - - + + Always + + + Always + diff --git a/IOB-WIN-SIEMENS/IobSiemens/SiemensTorri.cs b/IOB-WIN-SIEMENS/IobSiemens/SiemensTorri.cs index 94a66a02..3beefdde 100644 --- a/IOB-WIN-SIEMENS/IobSiemens/SiemensTorri.cs +++ b/IOB-WIN-SIEMENS/IobSiemens/SiemensTorri.cs @@ -382,63 +382,29 @@ namespace IOB_WIN_SIEMENS.IobSiemens { if (!string.IsNullOrEmpty(currODL) && currIdxODL > 0) { - // ora processo il contapezzi... - string retVal = ""; // controllo se è passato intervallo minimo tra 2 controlli/elaborazioni x // distanziare invio e ridurre letture if (DateTime.Now >= lastPzCountSend.AddMilliseconds(pzCountDelay)) { - // Salvo il contapezzi della macchina - retVal = utils.CallUrlGet(urlSetPzCountMAC + contapezziPLC.ToString()); - // verifica se tutto OK, ovvero conferma i pezzi inviati - if (retVal != contapezziPLC.ToString()) + // semplifico: se ho differenza invio in blocco + if (contapezziPLC > contapezziIOB) { - // errore salvataggio contapezzi - lgInfo($"Errore salvataggio Contapezzi PLC SIEMENST-TORRI: {contapezziPLC} | contapezziIOB {contapezziIOB} | Valore tornato: {retVal}"); - // rileggo il counter pezzi da server - pzCntReload(true); - } - - // se sono differenti MOSTRO... - if (contapezziPLC != contapezziIOB) - { - // registro contapezzi - lgInfo($"Differenza Contapezzi: contapezziPLC: {contapezziPLC} | contapezziIOB: {contapezziIOB}"); - } - - if ((contapezziPLC > contapezziIOB)) - { - // salvo nuovo contapezzi (incremento di 1...) + richiesta refresh conteggio - contapezziIOB++; - needRefreshPzCount = true; - // salvo in semaforo! - B_input += 1 << 2; - // registro contapezzi - lgInfo($"contapezziPLC SIEMENST-TORRI: {contapezziPLC} | contapezziIOB {contapezziIOB}"); - } - - if (needRefreshPzCount) - { - // Salvo il contapezzi della macchina - retVal = utils.CallUrlGet(urlSetPzCount + contapezziIOB.ToString()); - // verifica se tutto OK, ovvero conferma i pezzi inviati - if (retVal != contapezziIOB.ToString()) - { - // errore salvataggio contapezzi - lgInfo($"Errore salvataggio contapezziPLC SIEMENST-TORRI: {contapezziPLC} | contapezziIOB {contapezziIOB} | Valore tornato: {retVal}"); - // rileggo il counter pezzi da server - pzCntReload(true); - } - // resetto timer... - lastPzCountSend = DateTime.Now; - - // verifico se variato contapezzi... e se passato ritardo minimo... if ((contapezziPLC - contapezziIOB) > minSendPzCountBlock) { trySendPzCountBlock(); } - } + else + { + // salvo nuovo contapezzi (incremento di 1...) + richiesta refresh conteggio + contapezziIOB++; + needRefreshPzCount = true; + // salvo in semaforo! + B_input += 1 << 2; + } + // registro contapezzi + lgInfo($"contapezziPLC SIEMENST-TORRI: {contapezziPLC} | contapezziIOB {contapezziIOB}"); + } } } else diff --git a/IOB-WIN/GlobalSuppressions.cs b/IOB-WIN/GlobalSuppressions.cs index 3d8f13c0..55da6aaf 100644 --- a/IOB-WIN/GlobalSuppressions.cs +++ b/IOB-WIN/GlobalSuppressions.cs @@ -27,7 +27,6 @@ using System.Diagnostics.CodeAnalysis; [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1056:Le proprietà Uri non devono essere stringhe", Justification = "", Scope = "member", Target = "~P:IOB_WIN.IobGeneric.urlSetM2IOB")] [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1056:Le proprietà Uri non devono essere stringhe", Justification = "", Scope = "member", Target = "~P:IOB_WIN.IobGeneric.urlSetOptVal")] [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1056:Le proprietà Uri non devono essere stringhe", Justification = "", Scope = "member", Target = "~P:IOB_WIN.IobGeneric.urlSetPzCount")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1056:Le proprietà Uri non devono essere stringhe", Justification = "", Scope = "member", Target = "~P:IOB_WIN.IobGeneric.urlSetPzCountMAC")] [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1056:Le proprietà Uri non devono essere stringhe", Justification = "", Scope = "member", Target = "~P:IOB_WIN.IobGeneric.urlUpdateWriteParams")] [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1056:Le proprietà Uri non devono essere stringhe", Justification = "", Scope = "member", Target = "~P:IOB_WIN.IobMTC.urlSaveDataItems")] [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1056:Le proprietà Uri non devono essere stringhe", Justification = "", Scope = "member", Target = "~P:IOB_WIN.MainForm.updateUrl")] From f109bff088da9551e5f7b38cd2f5bd7d98d7ac6c Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 6 May 2026 08:25:33 +0200 Subject: [PATCH 2/2] Aggiunta salvaguardia x getTask2Exe sotto i 5 sec... --- IOB-WIN-FANUC/DATA/CONF/MAIN.ini | 1 - IOB-WIN-FORM/Iob/Generic.Protected.cs | 40 ++++++++++++++------------- IOB-WIN-FORM/MainForm.cs | 6 ++-- IOB-WIN-FTP/DATA/CONF/MAIN.ini | 1 - IOB-WIN-MTC/DATA/CONF/MAIN.ini | 1 - IOB-WIN-OPC-UA/DATA/CONF/3026.ini | 2 +- IOB-WIN-OPC-UA/DATA/CONF/MAIN.ini | 1 - IOB-WIN-PING/DATA/CONF/MAIN.ini | 1 - IOB-WIN-SIEMENS/DATA/CONF/MAIN.ini | 1 - IOB-WIN-WPS/DATA/CONF/MAIN.ini | 1 - 10 files changed, 25 insertions(+), 30 deletions(-) diff --git a/IOB-WIN-FANUC/DATA/CONF/MAIN.ini b/IOB-WIN-FANUC/DATA/CONF/MAIN.ini index 51e0748d..f621315d 100644 --- a/IOB-WIN-FANUC/DATA/CONF/MAIN.ini +++ b/IOB-WIN-FANUC/DATA/CONF/MAIN.ini @@ -34,4 +34,3 @@ CLI_INST=SteamWareSim STARTLIST=SIMUL_01 MAXCNC=10 - diff --git a/IOB-WIN-FORM/Iob/Generic.Protected.cs b/IOB-WIN-FORM/Iob/Generic.Protected.cs index dd9893dc..126809cf 100644 --- a/IOB-WIN-FORM/Iob/Generic.Protected.cs +++ b/IOB-WIN-FORM/Iob/Generic.Protected.cs @@ -116,6 +116,11 @@ namespace IOB_WIN_FORM.Iob /// protected DateTime dtVetoAutoDossier = DateTime.Now; + /// + /// Veto x esecuzione Task2Exe troppo frequenti + /// + protected DateTime dtVetoTask2Exe = DateTime.Now; + /// /// Veto x lettura contapezzi (in caso di autoODL con attesa reset ad esempio...) /// @@ -1089,16 +1094,6 @@ namespace IOB_WIN_FORM.Iob get => $@"{urlCommandIob("setCounter")}?counter="; } -#if false - /// - /// URL per salvataggio contapezzi (quelli della macchina: PLC/CNC)... - /// - protected string urlSetPzCountMAC - { - get => $@"{urlCommand("setCounter")}MAC_{IOBConfFull.General.CodIOB}?counter="; - } -#endif - /// /// URL per effettuare salvataggio parametri (snapshot) macchina... /// @@ -5682,18 +5677,25 @@ namespace IOB_WIN_FORM.Iob // solo se NON sono disabilitati i Task2Exe... if (!IOBConfFull.Device.DisabExeTask) { - // recupero elenco delle cose da fare - string resp = await getTask2exe(""); - // se ho qualcosa --> creo obj e lo accodo... - if (!string.IsNullOrEmpty(resp) && resp.Length > 2) + // se non ho veto task2exe + DateTime adesso = DateTime.Now; + if (adesso > dtVetoTask2Exe) { - accodaServReq("", resp); - if (isMulti) + // blocco fisso a 5 sec x ora + dtVetoTask2Exe = adesso.AddSeconds(5); + // recupero elenco delle cose da fare + string resp = await getTask2exe(""); + // se ho qualcosa --> creo obj e lo accodo... + if (!string.IsNullOrEmpty(resp) && resp.Length > 2) { - foreach (var item in IOBConfFull.Device.MultiIobList) + accodaServReq("", resp); + if (isMulti) { - resp = await getTask2exe(item); - accodaServReq(item, resp); + foreach (var item in IOBConfFull.Device.MultiIobList) + { + resp = await getTask2exe(item); + accodaServReq(item, resp); + } } } } diff --git a/IOB-WIN-FORM/MainForm.cs b/IOB-WIN-FORM/MainForm.cs index bf461dbe..9a23c6d0 100644 --- a/IOB-WIN-FORM/MainForm.cs +++ b/IOB-WIN-FORM/MainForm.cs @@ -137,7 +137,7 @@ namespace IOB_WIN_FORM if (answ) { lgInfo("SERVER ONLINE"); - utils.dtVetoPing = DateTime.Now.AddMilliseconds(baseUtils.nextPauseSendMSec * 3); + utils.dtVetoPing = DateTime.Now.AddMilliseconds(baseUtils.nextPauseSendMSec * 10); } else { @@ -149,7 +149,7 @@ namespace IOB_WIN_FORM else { // allungo periodo controllo... - utils.dtVetoPing = DateTime.Now.AddMilliseconds(baseUtils.nextPauseSendMSec * 10); + utils.dtVetoPing = DateTime.Now.AddMilliseconds(baseUtils.nextPauseSendMSec * 20); } } else @@ -158,7 +158,7 @@ namespace IOB_WIN_FORM utils.MPIO_Online = false; updateComStats(0, 0, false); // imposto veto a 10 volte reinvio dati standard... - utils.dtVetoPing = DateTime.Now.AddMilliseconds(baseUtils.nextPauseSendMSec * 20); + utils.dtVetoPing = DateTime.Now.AddMilliseconds(baseUtils.nextPauseSendMSec * 30); utils.dtVetoSend = utils.dtVetoPing; } } diff --git a/IOB-WIN-FTP/DATA/CONF/MAIN.ini b/IOB-WIN-FTP/DATA/CONF/MAIN.ini index 2cb4f81c..ebc0bef6 100644 --- a/IOB-WIN-FTP/DATA/CONF/MAIN.ini +++ b/IOB-WIN-FTP/DATA/CONF/MAIN.ini @@ -20,4 +20,3 @@ CLI_INST=SteamWareSim STARTLIST=FTP_SONATEST MAXCNC=10 - diff --git a/IOB-WIN-MTC/DATA/CONF/MAIN.ini b/IOB-WIN-MTC/DATA/CONF/MAIN.ini index b8e74cd4..4b123815 100644 --- a/IOB-WIN-MTC/DATA/CONF/MAIN.ini +++ b/IOB-WIN-MTC/DATA/CONF/MAIN.ini @@ -27,4 +27,3 @@ STARTLIST=3024 ;STARTLIST=LVF652 MAXCNC=10 - diff --git a/IOB-WIN-OPC-UA/DATA/CONF/3026.ini b/IOB-WIN-OPC-UA/DATA/CONF/3026.ini index 3e5dcf32..cade9a2a 100644 --- a/IOB-WIN-OPC-UA/DATA/CONF/3026.ini +++ b/IOB-WIN-OPC-UA/DATA/CONF/3026.ini @@ -62,7 +62,7 @@ ENABLE_CLI_RESTART=TRUE DELTA_VAL=0 ; clock base (da 10ms) -timerIntMs=50 +timerIntMs=100 ; conf parametri memoria READ/WRITE OPC_PARAM_CONF=3026.json diff --git a/IOB-WIN-OPC-UA/DATA/CONF/MAIN.ini b/IOB-WIN-OPC-UA/DATA/CONF/MAIN.ini index acfaebef..afc5df70 100644 --- a/IOB-WIN-OPC-UA/DATA/CONF/MAIN.ini +++ b/IOB-WIN-OPC-UA/DATA/CONF/MAIN.ini @@ -34,4 +34,3 @@ STARTLIST=3026 ;STARTLIST=SIMUL_01 MAXCNC=10 - diff --git a/IOB-WIN-PING/DATA/CONF/MAIN.ini b/IOB-WIN-PING/DATA/CONF/MAIN.ini index 3e8827de..ab68298b 100644 --- a/IOB-WIN-PING/DATA/CONF/MAIN.ini +++ b/IOB-WIN-PING/DATA/CONF/MAIN.ini @@ -20,4 +20,3 @@ STARTLIST=SIMUL_08 ;STARTLIST=3023-PING,3024-PING MAXCNC=10 - diff --git a/IOB-WIN-SIEMENS/DATA/CONF/MAIN.ini b/IOB-WIN-SIEMENS/DATA/CONF/MAIN.ini index babafa34..41774edf 100644 --- a/IOB-WIN-SIEMENS/DATA/CONF/MAIN.ini +++ b/IOB-WIN-SIEMENS/DATA/CONF/MAIN.ini @@ -42,4 +42,3 @@ CLI_INST=SteamWareSim STARTLIST=3010 MAXCNC=10 - diff --git a/IOB-WIN-WPS/DATA/CONF/MAIN.ini b/IOB-WIN-WPS/DATA/CONF/MAIN.ini index 5b0016e5..a81dc4b2 100644 --- a/IOB-WIN-WPS/DATA/CONF/MAIN.ini +++ b/IOB-WIN-WPS/DATA/CONF/MAIN.ini @@ -24,4 +24,3 @@ STARTLIST=3018 ;STARTLIST=SIMUL_06 MAXCNC=10 -