From 2f613211319693febd218c98f90671f4e12eb11a Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 29 Sep 2021 17:43:50 +0200 Subject: [PATCH] Aggiunta gestione delta valori x min/max e disconnect x ModBus --- IOB-WIN-NEXT/DATA/CONF/PIZ04.ini | 2 ++ IOB-WIN-NEXT/DATA/CONF/PIZ05.ini | 2 ++ IOB-WIN-NEXT/IobModbusTCP.cs | 24 ++++++++++++++++++++++-- 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/IOB-WIN-NEXT/DATA/CONF/PIZ04.ini b/IOB-WIN-NEXT/DATA/CONF/PIZ04.ini index b2c6e223..5bb1ff68 100644 --- a/IOB-WIN-NEXT/DATA/CONF/PIZ04.ini +++ b/IOB-WIN-NEXT/DATA/CONF/PIZ04.ini @@ -55,6 +55,8 @@ MAX_SEND_PZC_BLOCK=100 ; GEST DATI DYN ENABLE_DYN_DATA=TRUE FORCE_DYN_DATA=TRUE +; gestione delta minimo accettabile tra min/MAX +DELTA_VAL=0.1 ; clock base (da 10ms) timerIntMs=100 diff --git a/IOB-WIN-NEXT/DATA/CONF/PIZ05.ini b/IOB-WIN-NEXT/DATA/CONF/PIZ05.ini index 2c2f56ef..115e8aff 100644 --- a/IOB-WIN-NEXT/DATA/CONF/PIZ05.ini +++ b/IOB-WIN-NEXT/DATA/CONF/PIZ05.ini @@ -55,6 +55,8 @@ MAX_SEND_PZC_BLOCK=100 ; GEST DATI DYN ENABLE_DYN_DATA=TRUE FORCE_DYN_DATA=TRUE +; gestione delta minimo accettabile tra min/MAX +DELTA_VAL=0.1 ; clock base (da 10ms) timerIntMs=100 diff --git a/IOB-WIN-NEXT/IobModbusTCP.cs b/IOB-WIN-NEXT/IobModbusTCP.cs index ef5ade76..cbf13c13 100644 --- a/IOB-WIN-NEXT/IobModbusTCP.cs +++ b/IOB-WIN-NEXT/IobModbusTCP.cs @@ -21,6 +21,15 @@ namespace IOB_WIN_NEXT public class IobModbusTCP : IobGeneric { + #region Private Fields + + /// + /// Valore delta x gestione min/MAX e valore rilevato + /// + private double deltaVal = 0; + + #endregion Private Fields + #region Protected Fields protected ModbusClient currPLC; @@ -222,8 +231,8 @@ namespace IOB_WIN_NEXT default: break; } - // verifica limite... - dataOk = (valore > item.Value.minVal && valore < item.Value.maxVal); + // verifica limite... con delta da impianto + dataOk = (valore > (item.Value.minVal + deltaVal) && valore < (item.Value.maxVal - deltaVal)); if (dataOk) { // moltiplico x fattore conversione... @@ -496,6 +505,12 @@ namespace IOB_WIN_NEXT parentForm.commPlcActive = false; // carico conf vettore memoria... loadMemConf(); + // aggiungo DELTA x calcolo min/MAX... + string deltaValStr = getOptPar("DELTA_VAL"); + if (!string.IsNullOrEmpty(deltaValStr)) + { + double.TryParse(deltaValStr, out deltaVal); + } bool enableByApp = utils.CRB("enableContapezzi"); bool enableByIob = (getOptPar("ENABLE_PZCOUNT") == "TRUE"); bool disableByIob = (getOptPar("DISABLE_PZCOUNT") == "TRUE"); @@ -686,6 +701,11 @@ namespace IOB_WIN_NEXT { readErrorList = getDataDictionary(readErrorList, false, ref outVal); } + // se avessi acnora errori --> disconnetto + if (readErrorList.Count > 0) + { + tryDisconnect(); + } } else {