From bbada3a9291b2bfab28be8e281d46f753ab2d503 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Thu, 10 Sep 2020 13:15:29 +0200 Subject: [PATCH] update x fix calcolo tempo ciclo, calcolo durata, inizio lotto... --- Thermo.Active.NC/NcAdapter.cs | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/Thermo.Active.NC/NcAdapter.cs b/Thermo.Active.NC/NcAdapter.cs index c551b726..326228bb 100644 --- a/Thermo.Active.NC/NcAdapter.cs +++ b/Thermo.Active.NC/NcAdapter.cs @@ -1449,10 +1449,24 @@ namespace Thermo.Active.NC { currentProdPanel.LastCadenza = Math.Round((double)3600000 / lastProdInfoData.TimeCycleGross, 2); } + // se il valore SALVATO รจ > 3 * valore rilevato --> uso SOLO ultimo + if (lastCycle > 3 * currentProdPanel.LastCadenza) + { + lastCycle = currentProdPanel.LastCadenza; + } + // altrimenti EWMA da parametro calcolato standard, default 50% + else + { + //lastCycle = 0.5 * lastCycle + 0.5 * lastDuration; + lastCycle = ewmaLambda * currentProdPanel.LastCadenza + (1 - ewmaLambda) * lastCycle; + } + // salvo anche nei live data della ricetta... + RecipeLiveData.TC_last = lastCycle; + // stima durata da pz fatti... //currentProdPanel.StimaDurata = Math.Round((currentProdPanel.NumTarget - currentProdPanel.NumDone) * currentProdPanel.LastTCiclo, 2); - // 2020.09.03 uso dati da ricetta corrente... stimata con EWMA - currentProdPanel.StimaDurata = Math.Round((currentProdPanel.NumTarget - currentProdPanel.NumDone) * RecipeLiveData.TC_last, 2); + // 2020.09.03 uso dati da ricetta corrente... stimata con EWMA, in SECONDI! + currentProdPanel.StimaDurata = Math.Round((currentProdPanel.NumTarget - currentProdPanel.NumDone) * lastCycle, 2) ; // se stima negativa (+ pezzi di quanti richiesti...) --> ZERO! currentProdPanel.StimaDurata = currentProdPanel.StimaDurata < 0 ? 0 : currentProdPanel.StimaDurata; } @@ -1507,6 +1521,7 @@ namespace Thermo.Active.NC try { currentProdPanel.InizioProd = prodInfoFirst.FirstOrDefault().DtEvent; + lottoStart = currentProdPanel.InizioProd; } catch { }