From d6805a7c26927d19057cf3897e02263097fcbe51 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Wed, 4 Mar 2020 12:15:17 +0100 Subject: [PATCH 1/4] Aggiunto logica PlcOnline x determinare riavvio macchina --- CVCncLib/CVCncLib.dll | Bin 967680 -> 967680 bytes IOB-MAN/IOBManPanel.cs | 9 ++++----- IOB-MAN/RedisMan.cs | 4 ++-- IOB-MAN/iobAdapt.cs | 15 ++++++++++++++- 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/CVCncLib/CVCncLib.dll b/CVCncLib/CVCncLib.dll index dfe02fe479e81ad804d8f6c23a4cca682785d519..2b661b518603055e69449845629fbbc48d8ab63f 100644 GIT binary patch delta 134 zcmZqZux{wEp3uSE)D_>@-P+CA+RfD3&D`3}(%Q}1+RfJ5&EDG0(b~<~+RfG4&Aqjo z$8w>-JV&KR*JV>Yw(sP-X69um+kRys4-oTizp{|;51&qBS9}};5HJC;3?l=>i*tMo kFE;Qo1O>YUA6s~@_)nv<+rphD9&VC9lD7ZZz{esC0J_UFsQ>@~ delta 134 zcmZqZux{wEp3uR}t{&Rh-P+CA+RfD3&D`3}(%Q}1+RfJ5&EDG0(b~<~+RfG4&Aqjo z$8w>-w;Qv!Mb~fhnZS_qweLm8mG&zOd4QOA`;~=!fB1CR)I;MKfPe{zWf&P4UYz4& kc(H+xAt=}-IFdyw{pn?E&$esZ_n*k~J+S@H20j*H0PC|f^Z)<= diff --git a/IOB-MAN/IOBManPanel.cs b/IOB-MAN/IOBManPanel.cs index c774ee7f..f777c021 100644 --- a/IOB-MAN/IOBManPanel.cs +++ b/IOB-MAN/IOBManPanel.cs @@ -15,8 +15,6 @@ using System.Windows.Forms; namespace IOB_MAN { - - public partial class IOBManPanel : Form { #region area gestione hide/maximize finestre @@ -454,7 +452,8 @@ namespace IOB_MAN List proc2restart = new List(); foreach (iobAdapt item in ElencoIOB.List) { - if (!item.isRunning) + // se NON E' running oppure se ultimo comunicazione è > 5 minuti fa... + if (!item.isRunning || !item.plcOnline) { // segno da eliminare e riavviare proc2restart.Add(item); @@ -468,7 +467,7 @@ namespace IOB_MAN foreach (var item in proc2restart) { ElencoIOB.Remove(item); - utils.lgInfo($"Chiusura processo non running | IOB: {item.CodIOB} | pid: {item.pID}"); + utils.lgInfo($"Chiusura processo non running / online | IOB: {item.CodIOB} | pid: {item.pID}"); } // li faccio ripartire! foreach (var item in proc2restart) @@ -604,7 +603,7 @@ namespace IOB_MAN closeAllChild(true); closeTimers(); } - + private void closeTimers() { MainTimer.Dispose(); diff --git a/IOB-MAN/RedisMan.cs b/IOB-MAN/RedisMan.cs index 5324133a..0ff3be13 100644 --- a/IOB-MAN/RedisMan.cs +++ b/IOB-MAN/RedisMan.cs @@ -1081,11 +1081,11 @@ namespace IOB_MAN /// Lungh coda MESSAGGI in uscita /// public int queueMsLen { get; set; } = 0; -#if false /// /// DataOra ultima comunicazione IN (con PLC) /// - public DateTime lastDataIn { get; set; } = DateTime.Now.AddDays(-1); + public DateTime lastDataIn { get; set; } = DateTime.Now.AddMinutes(-1); +#if false /// /// DataOra ultima comunicazione OUT (con MP Server) /// diff --git a/IOB-MAN/iobAdapt.cs b/IOB-MAN/iobAdapt.cs index 91cd6f82..634f2aeb 100644 --- a/IOB-MAN/iobAdapt.cs +++ b/IOB-MAN/iobAdapt.cs @@ -77,7 +77,7 @@ namespace IOB_MAN /// public RedisIobCache redisMan; /// - /// Stato online dell'IOB + /// Stato online dell'IOB (rispetto server MP-IO) /// [DisplayName("Online")] public bool iobOnline @@ -88,6 +88,19 @@ namespace IOB_MAN } } /// + /// Determina se sia online il PLC cioè non sia fermo alla comunicazione per oltre 5 minuti + /// + [DisplayName("PlcOnline")] + public bool plcOnline + { + get + { + DateTime adesso = DateTime.Now; + bool plcOnline = Math.Abs(adesso.Subtract(currIobStatus.lastDataIn).TotalSeconds) < 300; + return plcOnline; + } + } + /// /// Counter dell'IOB /// [DisplayName("pz.IOB")] From 71c5d385b0033f0d8da218772abb0e06615629a2 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Wed, 4 Mar 2020 12:24:09 +0100 Subject: [PATCH 2/4] DA TESTARE inserita data comunicazione PLC --- IOB-UT/Objects.cs | 4 ++-- IOB-WIN/AdapterForm.cs | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/IOB-UT/Objects.cs b/IOB-UT/Objects.cs index 8af05708..784e7fda 100644 --- a/IOB-UT/Objects.cs +++ b/IOB-UT/Objects.cs @@ -534,11 +534,11 @@ namespace IOB_UT /// Lungh coda MESSAGGI in uscita /// public int queueMsLen { get; set; } = 0; -#if false /// /// DataOra ultima comunicazione IN (con PLC) /// - public DateTime lastDataIn { get; set; } = DateTime.Now.AddDays(-1); + public DateTime lastDataIn { get; set; } = DateTime.Now.AddMinutes(-1); +#if false /// /// DataOra ultima comunicazione OUT (con MP Server) /// diff --git a/IOB-WIN/AdapterForm.cs b/IOB-WIN/AdapterForm.cs index d0e5a67d..57b82e88 100644 --- a/IOB-WIN/AdapterForm.cs +++ b/IOB-WIN/AdapterForm.cs @@ -497,7 +497,8 @@ namespace IOB_WIN counterIOB = iobObj.contapezzi, counterMAC = iobObj.lastCountCNC, lastUpdate = lastIobStatus.lastUpdate, - online = utils.IOB_Online + online = utils.IOB_Online, + lastDataIn = iobObj.connectionOk ? DateTime.Now : lastIobStatus.lastDataIn }; // se diverso SALVO! if (lastIobStatus.online != currIobStatus.online || lastIobStatus.counterIOB != currIobStatus.counterIOB || lastIobStatus.counterMAC != currIobStatus.counterMAC || lastIobStatus.queueEvLen != currIobStatus.queueEvLen || lastIobStatus.queueFlLen != currIobStatus.queueFlLen || lastIobStatus.queueAlLen != currIobStatus.queueAlLen || lastIobStatus.queueMsLen != currIobStatus.queueMsLen) From 8fd275c45e166d31573e36ffbe900d6e3573bb74 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Wed, 4 Mar 2020 12:24:25 +0100 Subject: [PATCH 3/4] update vers numb --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 1d88e3a5..de41f3f5 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -9,7 +9,7 @@ pipeline { steps { /* calcolo numero versione... diverso x branch MASTER/DEVELOP */ script { - withEnv(['NEXT_BUILD_NUMBER=683']) { + withEnv(['NEXT_BUILD_NUMBER=684']) { // env.versionNumber = VersionNumber(versionNumberString : '3.0.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true) env.versionNumber = VersionNumber(versionNumberString : '3.0.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}') env.APP_NAME = 'MAPO-IOB-WIN' From 0ec9485f196a5a888b2d9e9709d3c4726be57152 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Wed, 4 Mar 2020 17:55:55 +0100 Subject: [PATCH 4/4] Aggiunta variabile x ultima lettura da PLC --- IOB-WIN/AdapterForm.cs | 2 +- IOB-WIN/IobGeneric.cs | 9 ++++++++- IOB-WIN/IobKawasaki.cs | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/IOB-WIN/AdapterForm.cs b/IOB-WIN/AdapterForm.cs index 57b82e88..1de58b7d 100644 --- a/IOB-WIN/AdapterForm.cs +++ b/IOB-WIN/AdapterForm.cs @@ -498,7 +498,7 @@ namespace IOB_WIN counterMAC = iobObj.lastCountCNC, lastUpdate = lastIobStatus.lastUpdate, online = utils.IOB_Online, - lastDataIn = iobObj.connectionOk ? DateTime.Now : lastIobStatus.lastDataIn + lastDataIn = iobObj.lastReadPLC }; // se diverso SALVO! if (lastIobStatus.online != currIobStatus.online || lastIobStatus.counterIOB != currIobStatus.counterIOB || lastIobStatus.counterMAC != currIobStatus.counterMAC || lastIobStatus.queueEvLen != currIobStatus.queueEvLen || lastIobStatus.queueFlLen != currIobStatus.queueFlLen || lastIobStatus.queueAlLen != currIobStatus.queueAlLen || lastIobStatus.queueMsLen != currIobStatus.queueMsLen) diff --git a/IOB-WIN/IobGeneric.cs b/IOB-WIN/IobGeneric.cs index 17e84b3d..b1f0947b 100644 --- a/IOB-WIN/IobGeneric.cs +++ b/IOB-WIN/IobGeneric.cs @@ -220,9 +220,13 @@ namespace IOB_WIN /// public DateTime lastDisconnCheck; /// - /// dataOra ultimo PING inviato... + /// dataOra ultimo PING inviato verso il PLC... /// public DateTime lastPING; + /// + /// DataOra ultima lettura da PLC + /// + public DateTime lastReadPLC; /// /// Oggetto della coda degli elementi letti (e non ancora trasmessi) /// @@ -1101,6 +1105,7 @@ namespace IOB_WIN dtAvvioAdp = DateTime.Now; lastWatchDog = dtAvvioAdp; lastPING = dtAvvioAdp; + lastReadPLC = dtAvvioAdp.AddMinutes(-1); lastDisconnCheck = dtAvvioAdp; TimingData.resetData(); // aggiungo altri defaults @@ -3268,6 +3273,7 @@ namespace IOB_WIN if (connectionOk) { readSemafori(ref currDispData); + lastReadPLC = DateTime.Now; } else { @@ -3725,6 +3731,7 @@ namespace IOB_WIN /// public virtual void readSemafori(ref newDisplayData currDispData) { + lastReadPLC = DateTime.Now; } /// diff --git a/IOB-WIN/IobKawasaki.cs b/IOB-WIN/IobKawasaki.cs index 1656d316..eee30d5d 100644 --- a/IOB-WIN/IobKawasaki.cs +++ b/IOB-WIN/IobKawasaki.cs @@ -460,7 +460,7 @@ namespace IOB_WIN } } } - // se non è ancora connesso faccio procesisng memoria caso disconnesso... + // se non è ancora connesso faccio processing memoria caso disconnesso... if (!connectionOk) { // processo semafori ed invio...