diff --git a/MTC_Sim/MTC_Sim/AdapterESA.cs b/MTC_Sim/MTC_Sim/AdapterESA.cs index 570d2b0..0dc1d8b 100644 --- a/MTC_Sim/MTC_Sim/AdapterESA.cs +++ b/MTC_Sim/MTC_Sim/AdapterESA.cs @@ -190,7 +190,7 @@ namespace MTC_Adapter int MinMaccLav = (int)ncDevice.PLC_MemoryAreaEOK[2]; int OreMaccLav = (int)ncDevice.PLC_MemoryAreaEOK[3]; double CurrMaccLav = OreMaccLav + (double)MinMaccLav / 60; - // cLavtrollo valore riferimento... + // controllo valore riferimento... if (CurrMaccLav > contOreMaccLav) { double deltaTime = CurrMaccLav - contOreMaccLav; @@ -204,9 +204,47 @@ namespace MTC_Adapter // passo valore in ORE (float) all'adapter mAccTimeWork.Value = currAdpConf.ContOreMaccLav; + // recupero dati dai contatori EOK: gri degli elettromandrini! + int[] giriMandr = new int[currAdpConf.nUnOp]; + for (int i = 0; i < currAdpConf.nUnOp; i++) + { + giriMandr[i] = (int)ncDevice.PLC_MemoryAreaEOK[4 + i]; + + // controllo valore riferimento... + if (giriMandr[i] > contGiriElettrom[i]) + { + int deltaGiri = giriMandr[i] - contGiriElettrom[i]; + contGiriElettrom[i] = giriMandr[i]; + // leggo tutti i dati... + List> listaDR = currAdpConf.UnOp[i].dataRefList; + // punto all'item + DataRefItem riContRpm = listaDR.Find(x => x.Key == string.Format("UnOp_{0:00}_AccTime", i + 1)); + // recupero valore giri... + Int32 contTotGiri = Convert.ToInt32(riContRpm.Value); + // aggiungo giri... + contTotGiri += deltaGiri; + // tolgo vecchio item + listaDR.Remove(riContRpm); + // lo aggiorno... + riContRpm.Value = contTotGiri.ToString(); + // riaggiungo item + listaDR.Add(riContRpm); + + // salvo in adapter! + currAdpConf.UnOp[i].dataRefList = listaDR; + + // passo valore num giri (migliaia) all'adapter + vettUnOp[i].mUnOpAccTime.Value = contTotGiri.ToString(); + + // segnalo necessità salvataggio! + needSave = true; + } + // ...aggiorno valore riferimento... + contGiriElettrom[i] = giriMandr[i]; + } // salvo se necessario! - if(needSave) parentForm.persistXmlData(); + if (needSave) parentForm.persistXmlData(); // ------------------------------------------- diff --git a/MTC_Sim/MTC_Sim/AdapterGeneric.cs b/MTC_Sim/MTC_Sim/AdapterGeneric.cs index d3a66c0..db59620 100644 --- a/MTC_Sim/MTC_Sim/AdapterGeneric.cs +++ b/MTC_Sim/MTC_Sim/AdapterGeneric.cs @@ -1091,7 +1091,14 @@ namespace MTC_Adapter contGiriElettrom = new int[currAdpConf.nUnOp]; for (int i = 0; i < currAdpConf.nUnOp; i++) { - contGiriElettrom[i] = 0; + // leggo tutti i dati... + List> listaDR = currAdpConf.UnOp[i].dataRefList; + // punto all'item + DataRefItem riContRpm = listaDR.Find(x => x.Key == string.Format("UnOp_{0:00}_AccTime", i + 1)); + // recupero valore giri... + Int32 contTotGiri = Convert.ToInt32(riContRpm.Value); + // salvo valore letto + contGiriElettrom[i] = contTotGiri; } contKmMovAssi = new float[currAdpConf.nAxis]; for (int i = 0; i < currAdpConf.nAxis; i++)