From 3ffd74869d9fb02b38d254b5f0ef242f3f14e1c9 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Tue, 15 Jan 2019 10:10:04 +0100 Subject: [PATCH] Inizio modifica PLC SiemensTOrri x derivare da Siemens x irrobustire --- IOB-WIN/AdapterForm.cs | 15 ++++++++------- IOB-WIN/IobSiemens.cs | 5 +++-- IOB-WIN/IobSiemensTorri.cs | 31 ++++++------------------------- 3 files changed, 17 insertions(+), 34 deletions(-) diff --git a/IOB-WIN/AdapterForm.cs b/IOB-WIN/AdapterForm.cs index 80d0c379..9b4074eb 100644 --- a/IOB-WIN/AdapterForm.cs +++ b/IOB-WIN/AdapterForm.cs @@ -373,9 +373,10 @@ namespace IOB_WIN } else { - double currWait = DateTime.Now.Subtract(lastStartTry).TotalMilliseconds; - if (iobObj.adpTryRestart && currWait > utils.CRI("waitRecMSec")) + DateTime dtVeto = lastStartTry.AddMilliseconds(utils.CRI("waitRecMSec")); + if (iobObj.adpTryRestart && (DateTime.Now > dtVeto)) { + lgInfo("Retry Time Elapsed --> tryConnect"); lastStartTry = DateTime.Now; iobObj.tryConnect(); } @@ -383,13 +384,13 @@ namespace IOB_WIN } else { - if (iobObj.verboseLog) + if (iobObj.periodicLog) { - lgInfo("PLC <--> IOB Not connected"); + lgInfo("Adapter stopped"); } - // verifico SE debba tentare il riavvio, ovvero NON running ma tryReconn e non ho riprovato x oltre waitRecMSec - double currWait = DateTime.Now.Subtract(lastStartTry).TotalMilliseconds; - if (iobObj.adpTryRestart && currWait > utils.CRI("waitRecMSec")) + // verifico SE debba tentare il riavvio, ovvero NON running ma adpTryRestart e non ho riprovato x oltre waitRecMSec + DateTime dtVeto = lastStartTry.AddMilliseconds(utils.CRI("waitRecMSec")); + if (iobObj.adpTryRestart && (DateTime.Now > dtVeto)) { lastStartTry = DateTime.Now; avviaAdapter(chkForceDequeue.Checked); diff --git a/IOB-WIN/IobSiemens.cs b/IOB-WIN/IobSiemens.cs index 423702b5..aed21c7d 100644 --- a/IOB-WIN/IobSiemens.cs +++ b/IOB-WIN/IobSiemens.cs @@ -364,6 +364,7 @@ namespace IOB_WIN /// public override void tryConnect() { + bool doLog = (verboseLog || periodicLog); if (!connectionOk) { // reimporto parametri PLC se necessario... @@ -371,7 +372,7 @@ namespace IOB_WIN // controllo che il ping sia stato tentato almeno pingTestSec fa... if (DateTime.Now.Subtract(lastPING).TotalSeconds > utils.CRI("pingTestSec")) { - if (verboseLog || periodicLog) + if (doLog) { lgInfo("SIEMENS: ConnKO - tryConnect"); } @@ -420,7 +421,7 @@ namespace IOB_WIN { // loggo no risposta ping ... connectionOk = false; - if (verboseLog || periodicLog) + if (doLog) { lgInfo(string.Format("Attenzione: SIEMENS controllo PING fallito per IP {0}", cIobConf.cncIpAddr)); } diff --git a/IOB-WIN/IobSiemensTorri.cs b/IOB-WIN/IobSiemensTorri.cs index e818bf6a..d1d9d77d 100644 --- a/IOB-WIN/IobSiemensTorri.cs +++ b/IOB-WIN/IobSiemensTorri.cs @@ -4,7 +4,6 @@ using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; -using System.Net; using System.Net.NetworkInformation; namespace IOB_WIN @@ -34,10 +33,6 @@ namespace IOB_WIN /// protected Plc currPLC; /// - /// indica se serva refresh parametri e quindi PLC... - /// - bool needRefresh = true; - /// /// Oggetto cronometro x test vari... /// protected Stopwatch sw = new Stopwatch(); @@ -235,23 +230,6 @@ namespace IOB_WIN return answ; } /// - /// test ping all'indirizzo impostato nei parametri - /// - /// - private IPStatus testPing() - { - IPStatus answ = IPStatus.Unknown; ; - IPAddress address; - PingReply reply; - Ping pingSender = new Ping(); - address = IPAddress.Loopback; - IPAddress.TryParse(parametri.ipAdrr, out address); - int pingMsTimeout = parametri.pingMsTimeout; - reply = pingSender.Send(address, pingMsTimeout); - answ = reply.Status; - return answ; - } - /// /// Imposto parametri PLC /// private void setParamPlc() @@ -381,12 +359,15 @@ namespace IOB_WIN /// public override void tryConnect() { + bool doLog = (verboseLog || periodicLog); if (!connectionOk) { + // reimporto parametri PLC se necessario... + setParamPlc(); // controllo che il ping sia stato tentato almeno pingTestSec fa... if (DateTime.Now.Subtract(lastPING).TotalSeconds > utils.CRI("pingTestSec")) { - if (verboseLog || periodicLog) + if (doLog) { lgInfo("SIEMENS-TORRI: ConnKO - tryConnect"); } @@ -435,7 +416,7 @@ namespace IOB_WIN { // loggo no risposta ping ... connectionOk = false; - if (verboseLog || periodicLog) + if (doLog) { lgInfo(string.Format("Attenzione: SIEMENS-TORRI controllo PING fallito per IP {0}", cIobConf.cncIpAddr)); } @@ -757,7 +738,7 @@ namespace IOB_WIN // resetto timer... lastPzCountSend = DateTime.Now; } - } + } // log opzionale! if (verboseLog)