Correzione controllo errori lettura ModBus in caso di tutto a zero...
This commit is contained in:
@@ -5639,7 +5639,7 @@ namespace IOB_WIN_FORM.Iob
|
||||
// 2023.12.20: aggiunta gestione secondo tipo allarmi come elenco OPC-UA (BLM/Adige)
|
||||
if (alarmType == AlarmBlockType.Bitmap)
|
||||
{
|
||||
int numErrors = 0;
|
||||
int numRaised = 0;
|
||||
int currStatus = 0;
|
||||
ushort full16 = 65535;
|
||||
int[] listInt = new int[2];
|
||||
@@ -5669,7 +5669,7 @@ namespace IOB_WIN_FORM.Iob
|
||||
// calcolo indice errori
|
||||
if ((uint)(item.alarmsMask[i] & currStatus) > 0)
|
||||
{
|
||||
numErrors++;
|
||||
numRaised++;
|
||||
}
|
||||
// verifico SE sia variato... confronto allarmi filtrato stile blink per
|
||||
// bit status:
|
||||
@@ -5688,7 +5688,7 @@ namespace IOB_WIN_FORM.Iob
|
||||
}
|
||||
}
|
||||
}
|
||||
answ = numErrors > 0;
|
||||
answ = numRaised > 0;
|
||||
}
|
||||
// gestione allarmi come elenco
|
||||
else if (alarmType == AlarmBlockType.ActiveList)
|
||||
|
||||
@@ -2087,8 +2087,10 @@ namespace IOB_WIN_MBUS.IobModbusTCP
|
||||
bool allZero = (rawData.Where(x => x > 0).Count() == 0);
|
||||
if (allZero)
|
||||
{
|
||||
currReadErrors += 5;
|
||||
currReadErrors += 1;
|
||||
#if false
|
||||
allOk = false;
|
||||
#endif
|
||||
}
|
||||
// salvo in LUT la versione ESPLOSA 2 byte alla volta...
|
||||
if (allOk && rawData.Length > 0)
|
||||
@@ -2132,6 +2134,11 @@ namespace IOB_WIN_MBUS.IobModbusTCP
|
||||
lgError($"readMemBlockHoldingReg | Attenzione, PLC disconnesso... currReadErrors: {currReadErrors}");
|
||||
tryDisconnect();
|
||||
}
|
||||
// all ok: se non scattato verifico se errori < 50...
|
||||
if (allOk)
|
||||
{
|
||||
allOk = currReadErrors < 10;
|
||||
}
|
||||
return allOk;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user