Correzione controllo errori lettura ModBus in caso di tutto a zero...

This commit is contained in:
Samuele Locatelli
2025-01-31 16:44:44 +01:00
parent 5fb047d0f1
commit c32ef20b50
2 changed files with 11 additions and 4 deletions
+3 -3
View File
@@ -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)
+8 -1
View File
@@ -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;
}