From 8a2917bf0c9a6b44b8baa7b61a3479074437812b Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Fri, 8 May 2026 14:44:25 +0200 Subject: [PATCH 1/3] modifica MTC x ridurre invio continuo di DataItem status (disabilitazione globale e veto gestito da conf) - da completare --- IOB-UT-NEXT/ToMapo.cs | 10 ++++++++++ IOB-WIN-FORM/Iob/Generic.Protected.cs | 9 +++++++++ IOB-WIN-MTC/Iob/MTConn.cs | 21 ++++++++++++++------- 3 files changed, 33 insertions(+), 7 deletions(-) diff --git a/IOB-UT-NEXT/ToMapo.cs b/IOB-UT-NEXT/ToMapo.cs index e5954cf4..3a142836 100644 --- a/IOB-UT-NEXT/ToMapo.cs +++ b/IOB-UT-NEXT/ToMapo.cs @@ -2,6 +2,7 @@ using Newtonsoft.Json; using Newtonsoft.Json.Converters; using System.Collections.Generic; +using System; namespace IOB_UT_NEXT { @@ -649,6 +650,15 @@ namespace IOB_UT_NEXT /// public bool doSubsSample { get; set; } = true; + /// + /// Periodo in minuti di Veto invio status DataItem verso server + /// + public int VetoSendDataItem { get; set; } = 60; + + /// + /// Abilitazione invio dataItem al server + /// + public bool EnabDataItemSave { get; set; } = true; #endregion Public Properties } diff --git a/IOB-WIN-FORM/Iob/Generic.Protected.cs b/IOB-WIN-FORM/Iob/Generic.Protected.cs index 126809cf..764faec1 100644 --- a/IOB-WIN-FORM/Iob/Generic.Protected.cs +++ b/IOB-WIN-FORM/Iob/Generic.Protected.cs @@ -141,6 +141,15 @@ namespace IOB_WIN_FORM.Iob /// protected bool enableCliRestart = false; + /// + /// Abilitazione invio dataitem + /// + protected bool enableSendDataItem = false; + /// + /// DataOra x veto all'invio dataItem + /// + protected DateTime dtVetoSenDataItem= DateTime.Now; + /// /// Boolean x indicare contapezzi abilitato a livello di conf applicazione /// diff --git a/IOB-WIN-MTC/Iob/MTConn.cs b/IOB-WIN-MTC/Iob/MTConn.cs index 047a2416..21547287 100644 --- a/IOB-WIN-MTC/Iob/MTConn.cs +++ b/IOB-WIN-MTC/Iob/MTConn.cs @@ -38,7 +38,7 @@ namespace IOB_WIN_MTC.Iob readErrorMax = IobConfFull.Device.ReadErrorMax; readErrorSleepTime = IobConfFull.Device.ReadErrorSleepTime; enableCliRestart = IobConfFull.Device.Connect.EnableRestart; - + enableSendDataItem = IOBConfFull.Special.MtcConf.EnabDataItemSave; // gestione data unavailable = poweroff... if (!string.IsNullOrEmpty(getOptPar("UNAVAIL_POWEROFF"))) @@ -1758,10 +1758,6 @@ namespace IOB_WIN_MTC.Iob { lgInfo($"STEP 03 invio dati di {elencoDataItems.Count} records"); sendDataItemsList(elencoDataItems); -#if false - // provo a tracciare dataitems... - trackExchDataRaw(elencoDataItems, 1024); -#endif trackExchData(1024, 4096); } @@ -1978,8 +1974,19 @@ namespace IOB_WIN_MTC.Iob /// private void sendDataItemsList(List dataItems) { - string rawData = JsonConvert.SerializeObject(dataItems); - utils.CallUrlPost($"{urlSaveDataItems}", rawData); + // verifico abilitazione preliminare all'invio + if (enableSendDataItem) + { + // verifico veto ad invio (ogni 60 min...) + DateTime adesso = DateTime.Now; + if (adesso > dtVetoSenDataItem) + { + string rawData = JsonConvert.SerializeObject(dataItems); + var resp = utils.CallUrlPost($"{urlSaveDataItems}", rawData); + // imposto nuovo veto + dtVetoSenDataItem = adesso.AddMinutes(IOBConfFull.Special.MtcConf.VetoSendDataItem); + } + } } /// From f64fc8570813f51576dfe96031f314a91d839410 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Fri, 8 May 2026 16:27:17 +0200 Subject: [PATCH 2/3] Fix timer base siemens --- IOB-WIN-SIEMENS/DATA/CONF/3010.ini | 2 ++ IOB-WIN-SIEMENS/DATA/CONF/3011.ini | 2 ++ IOB-WIN-SIEMENS/DATA/CONF/3013.ini | 2 ++ IOB-WIN-SIEMENS/DATA/CONF/3020.ini | 2 ++ 4 files changed, 8 insertions(+) diff --git a/IOB-WIN-SIEMENS/DATA/CONF/3010.ini b/IOB-WIN-SIEMENS/DATA/CONF/3010.ini index 199acd53..cd7fc4c5 100644 --- a/IOB-WIN-SIEMENS/DATA/CONF/3010.ini +++ b/IOB-WIN-SIEMENS/DATA/CONF/3010.ini @@ -68,6 +68,8 @@ MAX_SEND_PZC_BLOCK=100 DISABLE_SEND_WDST=TRUE ; conf aree allarme ALARM_CONF=3010_alarm.json +; gestione custom timer +timerIntMs=100 [BRANCH] NAME=develop diff --git a/IOB-WIN-SIEMENS/DATA/CONF/3011.ini b/IOB-WIN-SIEMENS/DATA/CONF/3011.ini index f070fe10..d6e129b6 100644 --- a/IOB-WIN-SIEMENS/DATA/CONF/3011.ini +++ b/IOB-WIN-SIEMENS/DATA/CONF/3011.ini @@ -69,6 +69,8 @@ MAX_SEND_PZC_BLOCK=100 DISABLE_SEND_WDST=TRUE ; conf aree allarme ALARM_CONF=3011_alarm.json +; gestione custom timer +timerIntMs=100 [BRANCH] NAME=master diff --git a/IOB-WIN-SIEMENS/DATA/CONF/3013.ini b/IOB-WIN-SIEMENS/DATA/CONF/3013.ini index 75e4d6c0..7b2740c6 100644 --- a/IOB-WIN-SIEMENS/DATA/CONF/3013.ini +++ b/IOB-WIN-SIEMENS/DATA/CONF/3013.ini @@ -68,6 +68,8 @@ MAX_SEND_PZC_BLOCK=100 DISABLE_SEND_WDST=TRUE ; conf aree allarme ALARM_CONF=3013_alarm.json +; gestione custom timer +timerIntMs=100 [BRANCH] NAME=develop diff --git a/IOB-WIN-SIEMENS/DATA/CONF/3020.ini b/IOB-WIN-SIEMENS/DATA/CONF/3020.ini index 87f68df3..b6b146e8 100644 --- a/IOB-WIN-SIEMENS/DATA/CONF/3020.ini +++ b/IOB-WIN-SIEMENS/DATA/CONF/3020.ini @@ -69,6 +69,8 @@ MAX_SEND_PZC_BLOCK=100 DISABLE_SEND_WDST=TRUE ; gestione veto coda ingresso dati VETO_QUEUE_IN=10 +; gestione custom timer +timerIntMs=100 ; conf aree allarme ALARM_CONF=3020_alarm.json From c0250914ec9ef3741628844c7994caf2700175df Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Fri, 8 May 2026 16:38:05 +0200 Subject: [PATCH 3/3] Completo update MTC x veto sendDataItems --- IOB-UT-NEXT/ToMapo.cs | 10 ------- IOB-WIN-FORM/Iob/Generic.Protected.cs | 3 ++- IOB-WIN-MTC/DATA/CONF/3024.ini | 4 +++ IOB-WIN-MTC/Iob/MTConn.cs | 38 +++++---------------------- 4 files changed, 13 insertions(+), 42 deletions(-) diff --git a/IOB-UT-NEXT/ToMapo.cs b/IOB-UT-NEXT/ToMapo.cs index 3a142836..cd5d82d8 100644 --- a/IOB-UT-NEXT/ToMapo.cs +++ b/IOB-UT-NEXT/ToMapo.cs @@ -650,16 +650,6 @@ namespace IOB_UT_NEXT /// public bool doSubsSample { get; set; } = true; - /// - /// Periodo in minuti di Veto invio status DataItem verso server - /// - public int VetoSendDataItem { get; set; } = 60; - - /// - /// Abilitazione invio dataItem al server - /// - public bool EnabDataItemSave { get; set; } = true; - #endregion Public Properties } diff --git a/IOB-WIN-FORM/Iob/Generic.Protected.cs b/IOB-WIN-FORM/Iob/Generic.Protected.cs index 764faec1..2bb1c900 100644 --- a/IOB-WIN-FORM/Iob/Generic.Protected.cs +++ b/IOB-WIN-FORM/Iob/Generic.Protected.cs @@ -144,7 +144,8 @@ namespace IOB_WIN_FORM.Iob /// /// Abilitazione invio dataitem /// - protected bool enableSendDataItem = false; + protected bool enableSendDataItem = true; + protected int minVetoSendDataItem = 60; /// /// DataOra x veto all'invio dataItem /// diff --git a/IOB-WIN-MTC/DATA/CONF/3024.ini b/IOB-WIN-MTC/DATA/CONF/3024.ini index e6e2b290..b62e2499 100644 --- a/IOB-WIN-MTC/DATA/CONF/3024.ini +++ b/IOB-WIN-MTC/DATA/CONF/3024.ini @@ -64,6 +64,10 @@ ENABLE_CLI_RESTART=TRUE MAX_ELAPSED_TIME_SEC=60 READ_ERROR_MAX=10 READ_ERROR_SLEEP_TIME=30000 +; gestione custom timer +timerIntMs=150 +ENABLE_SEND_DATAITEM=true +MIN_VETO_SEND_DATAITEM=120 ; conf parametri memoria READ/WRITE MTC_PARAM_CONF=3024.json diff --git a/IOB-WIN-MTC/Iob/MTConn.cs b/IOB-WIN-MTC/Iob/MTConn.cs index 21547287..d1b48070 100644 --- a/IOB-WIN-MTC/Iob/MTConn.cs +++ b/IOB-WIN-MTC/Iob/MTConn.cs @@ -38,7 +38,6 @@ namespace IOB_WIN_MTC.Iob readErrorMax = IobConfFull.Device.ReadErrorMax; readErrorSleepTime = IobConfFull.Device.ReadErrorSleepTime; enableCliRestart = IobConfFull.Device.Connect.EnableRestart; - enableSendDataItem = IOBConfFull.Special.MtcConf.EnabDataItemSave; // gestione data unavailable = poweroff... if (!string.IsNullOrEmpty(getOptPar("UNAVAIL_POWEROFF"))) @@ -50,39 +49,16 @@ namespace IOB_WIN_MTC.Iob { bool.TryParse(getOptPar("ENABLE_MTC_RESTART"), out enableMtcRestart); } - - // gestione override contapezzi - - - // vecchia gestione custom OPT_PAR -#if false - // gestione data filtering... - if (!string.IsNullOrEmpty(getOptPar("ENABLE_DATA_FILTER"))) + // gestione parametri x sendDataItem + if (!string.IsNullOrEmpty(getOptPar("ENABLE_SEND_DATAITEM"))) { - bool.TryParse(getOptPar("ENABLE_DATA_FILTER"), out enableDataFilter); - } - // init MaxSecReload - if (!string.IsNullOrEmpty(getOptPar("MAX_ELAPSED_TIME_SEC"))) + bool.TryParse(getOptPar("ENABLE_SEND_DATAITEM"), out enableSendDataItem); + } + if (!string.IsNullOrEmpty(getOptPar("MIN_VETO_SEND_DATAITEM"))) { - int.TryParse(getOptPar("MAX_ELAPSED_TIME_SEC"), out MaxSecReload); + int.TryParse(getOptPar("MIN_VETO_SEND_DATAITEM"), out minVetoSendDataItem); } - // init gestione reset errori lettura - if (!string.IsNullOrEmpty(getOptPar("READ_ERROR_MAX"))) - { - int.TryParse(getOptPar("READ_ERROR_MAX"), out readErrorMax); - } - if (!string.IsNullOrEmpty(getOptPar("READ_ERROR_SLEEP_TIME"))) - { - int.TryParse(getOptPar("READ_ERROR_SLEEP_TIME"), out readErrorSleepTime); - } - - // gestione restart OpcUa client... - if (!string.IsNullOrEmpty(getOptPar("ENABLE_CLI_RESTART"))) - { - bool.TryParse(getOptPar("ENABLE_CLI_RESTART"), out enableCliRestart); - } -#endif // init datetime counters DateTime adesso = DateTime.Now; @@ -1984,7 +1960,7 @@ namespace IOB_WIN_MTC.Iob string rawData = JsonConvert.SerializeObject(dataItems); var resp = utils.CallUrlPost($"{urlSaveDataItems}", rawData); // imposto nuovo veto - dtVetoSenDataItem = adesso.AddMinutes(IOBConfFull.Special.MtcConf.VetoSendDataItem); + dtVetoSenDataItem = adesso.AddMinutes(minVetoSendDataItem); } } }