From 479a4f964b9f4f2b2d85dd11891fa1046051fb5d Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Mon, 8 Nov 2021 15:59:11 +0100 Subject: [PATCH] Fix gestione contatore errori ModBus + condizione disconnect (NON entrava in catch) --- IOB-WIN-NEXT/IobModbusTCP.cs | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/IOB-WIN-NEXT/IobModbusTCP.cs b/IOB-WIN-NEXT/IobModbusTCP.cs index 73fb1ea6..ea38b7f2 100644 --- a/IOB-WIN-NEXT/IobModbusTCP.cs +++ b/IOB-WIN-NEXT/IobModbusTCP.cs @@ -451,24 +451,13 @@ namespace IOB_WIN_NEXT { currReadErrors++; lgError($"Impossibile copiare dati, array di origine troppo corto: rawData.lenght: {rawData.Length} | base addr richiesto i*2: {i * 2} | errori currReadErrors: {currReadErrors}"); - // se > 3 errori --> disconnetto - if (currReadErrors > maxReadErrors) - { - lgInfo("Superato limite errori Read --> tryDisconnect"); - currReadErrors = 0; - tryDisconnect(); - } - else - { - // altrimenti pausa forzata - Thread.Sleep(200); - } } } } } catch (Exception exc) { + currReadErrors++; lgError($"Eccezione in readBlockHoldingReg{Environment.NewLine}{exc}"); } } @@ -477,6 +466,19 @@ namespace IOB_WIN_NEXT lgError("Attenzione, plc disconnesso..."); tryDisconnect(); } + + // se > max errori --> disconnetto + if (currReadErrors > maxReadErrors) + { + lgInfo("Superato limite errori Read --> tryDisconnect"); + currReadErrors = 0; + tryDisconnect(); + } + else + { + // altrimenti pausa forzata + Thread.Sleep(200); + } } #endregion Private Methods