Aggiunta gestione delta valori x min/max e disconnect x ModBus

This commit is contained in:
Samuele Locatelli
2021-09-29 17:43:50 +02:00
parent c39021f5b7
commit 2f61321131
3 changed files with 26 additions and 2 deletions
+2
View File
@@ -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
+2
View File
@@ -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
+22 -2
View File
@@ -21,6 +21,15 @@ namespace IOB_WIN_NEXT
public class IobModbusTCP : IobGeneric
{
#region Private Fields
/// <summary>
/// Valore delta x gestione min/MAX e valore rilevato
/// </summary>
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
{