Merge branch 'release/ModBusHoldRegErrorsNumb'
This commit is contained in:
@@ -40,8 +40,8 @@
|
||||
<add key="maxQueueFLog" value="16384" />
|
||||
<!--gestione max num errori-->
|
||||
<add key="maxAliveErrors" value="1000" />
|
||||
<add key="maxSendErrors" value="30" />
|
||||
<add key="maxReadErrors" value="15" />
|
||||
<add key="maxSendErrors" value="100" />
|
||||
<add key="maxReadErrors" value="50" />
|
||||
<!--parametri SIM-->
|
||||
<add key="waitSimPar" value="30" />
|
||||
<!--<add key="waitSimPar" value="45" />-->
|
||||
|
||||
@@ -410,8 +410,10 @@ namespace IOB_WIN_NEXT
|
||||
/// <param name="numReg">NUm registri da leggere (max 120)</param>
|
||||
private void readBlockHoldingReg(int startAddr, int numReg)
|
||||
{
|
||||
bool allOk = false;
|
||||
if (currPLC.Connected)
|
||||
{
|
||||
allOk = true;
|
||||
// fix massima lunghezza pacchetto
|
||||
if (numReg > 120)
|
||||
{
|
||||
@@ -450,6 +452,7 @@ namespace IOB_WIN_NEXT
|
||||
else
|
||||
{
|
||||
currReadErrors++;
|
||||
allOk = false;
|
||||
lgError($"Impossibile copiare dati, array di origine troppo corto: rawData.lenght: {rawData.Length} | base addr richiesto i*2: {i * 2} | errori currReadErrors: {currReadErrors}");
|
||||
}
|
||||
}
|
||||
@@ -458,26 +461,35 @@ namespace IOB_WIN_NEXT
|
||||
catch (Exception exc)
|
||||
{
|
||||
currReadErrors++;
|
||||
lgError($"Eccezione in readBlockHoldingReg{Environment.NewLine}{exc}");
|
||||
allOk = false;
|
||||
lgError($"Eccezione in readBlockHoldingReg | currReadErrors: {currReadErrors}{Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lgError("Attenzione, plc disconnesso...");
|
||||
lgError($"Attenzione, plc disconnesso... currReadErrors: {currReadErrors}");
|
||||
tryDisconnect();
|
||||
}
|
||||
|
||||
// se > max errori --> disconnetto
|
||||
if (currReadErrors > maxReadErrors)
|
||||
// se tutto ok --> riduco contatore errori di 1...
|
||||
if (allOk)
|
||||
{
|
||||
lgInfo("Superato limite errori Read --> tryDisconnect");
|
||||
currReadErrors = 0;
|
||||
tryDisconnect();
|
||||
currReadErrors = currReadErrors >= 1 ? currReadErrors-- : 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
// altrimenti pausa forzata
|
||||
Thread.Sleep(200);
|
||||
// se > max errori --> disconnetto
|
||||
if (currReadErrors > maxReadErrors)
|
||||
{
|
||||
lgInfo($"Superato limite errori Read ({currReadErrors}) --> tryDisconnect");
|
||||
currReadErrors = 0;
|
||||
tryDisconnect();
|
||||
}
|
||||
else
|
||||
{
|
||||
// altrimenti pausa forzata
|
||||
Thread.Sleep(300);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user