|
|
|
@@ -610,6 +610,10 @@ namespace MTC_Adapter
|
|
|
|
|
/// Vettore ATTUALE dei contatori del Lubro
|
|
|
|
|
/// </summary>
|
|
|
|
|
public uint[] currLubroCount;
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Vettore ATTUALE dei contatori del tempo cumulato lavoro degli assi (h)
|
|
|
|
|
/// </summary>
|
|
|
|
|
public double[] contAxisAccumTime;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
@@ -652,6 +656,14 @@ namespace MTC_Adapter
|
|
|
|
|
/// Vettore ISTANTANEO dei contatori del Lubro
|
|
|
|
|
/// </summary>
|
|
|
|
|
public uint[] istLubroCount;
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Vettore ISTANTANEO dei contatori del tempo cumulato lavoro degli assi (h)
|
|
|
|
|
/// </summary>
|
|
|
|
|
public double[] istAxisAccumTime;
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// data-ora ultimo controllo movimento assi
|
|
|
|
|
/// </summary>
|
|
|
|
|
public DateTime lastChekAccumTimeAxis;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// posizione precedente assi per calcolo distanze...
|
|
|
|
@@ -1245,6 +1257,9 @@ namespace MTC_Adapter
|
|
|
|
|
istDistMovAssi = new uint[currAdpConf.nAxis];
|
|
|
|
|
contNumInvAssi = new uint[currAdpConf.nAxis];
|
|
|
|
|
istNumInvAssi = new uint[currAdpConf.nAxis];
|
|
|
|
|
contAxisAccumTime = new double[currAdpConf.nAxis];
|
|
|
|
|
istAxisAccumTime = new double[currAdpConf.nAxis];
|
|
|
|
|
lastChekAccumTimeAxis = DateTime.Now;
|
|
|
|
|
for (int i = 0; i < currAdpConf.nAxis; i++)
|
|
|
|
|
{
|
|
|
|
|
// leggo tutti i dati...
|
|
|
|
@@ -1252,9 +1267,11 @@ namespace MTC_Adapter
|
|
|
|
|
// punto all'item
|
|
|
|
|
DataRefItem<string, string> riContDist = listaDR.Find(x => x.Key == string.Format("Axis_{0:00}_DistDone", i + 1));
|
|
|
|
|
DataRefItem<string, string> riNumInv = listaDR.Find(x => x.Key == string.Format("Axis_{0:00}_Invers", i + 1));
|
|
|
|
|
DataRefItem<string, string> riAccTime = listaDR.Find(x => x.Key == string.Format("Axis_{0:00}_AccTime", i + 1));
|
|
|
|
|
// recupero valori...
|
|
|
|
|
contDistMovAssi[i] = Convert.ToUInt32(riContDist.Value);
|
|
|
|
|
contNumInvAssi[i] = Convert.ToUInt32(riNumInv.Value);
|
|
|
|
|
contAxisAccumTime[i] = Convert.ToDouble(riAccTime.Value);
|
|
|
|
|
}
|
|
|
|
|
currPathPartId = new string[currAdpConf.nPath];
|
|
|
|
|
istPathPartId = new string[currAdpConf.nPath];
|
|
|
|
@@ -1931,6 +1948,30 @@ namespace MTC_Adapter
|
|
|
|
|
return contTotPz;
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Aggiornamento vettore RefList generico tipo DOUBLE
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="i"></param>
|
|
|
|
|
/// <param name="delta"></param>
|
|
|
|
|
/// <param name="searchString"></param>
|
|
|
|
|
/// <param name="listaDR"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
private static double updateRefListByIncrDouble(int i, double delta, string searchString, ref List<DataRefItem<string, string>> listaDR)
|
|
|
|
|
{
|
|
|
|
|
// punto all'item
|
|
|
|
|
DataRefItem<string, string> riValore = listaDR.Find(x => x.Key == string.Format(searchString, i + 1));
|
|
|
|
|
// recupero valore giri...
|
|
|
|
|
double contTot = Convert.ToDouble(riValore.Value);
|
|
|
|
|
// aggiungo giri...
|
|
|
|
|
contTot += delta;
|
|
|
|
|
// tolgo vecchio item
|
|
|
|
|
listaDR.Remove(riValore);
|
|
|
|
|
// lo aggiorno...
|
|
|
|
|
riValore.Value = contTot.ToString();
|
|
|
|
|
// ri-aggiungo item
|
|
|
|
|
listaDR.Add(riValore);
|
|
|
|
|
return contTot;
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Aggiorna un valore RefList del vettore Axis in INCREMENTO e lo restituisce
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="i"></param>
|
|
|
|
@@ -1947,12 +1988,29 @@ namespace MTC_Adapter
|
|
|
|
|
currAdpConf.Axis[i].dataRefList = listaDR;
|
|
|
|
|
return contTot;
|
|
|
|
|
}/// <summary>
|
|
|
|
|
/// Aggiorna un valore RefList del vettore PATH in INCREMENTO e lo restituisce
|
|
|
|
|
/// Aggiorna un valore RefList del vettore Axis in INCREMENTO tipo double e lo restituisce
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="i"></param>
|
|
|
|
|
/// <param name="delta"></param>
|
|
|
|
|
/// <param name="searchString"></param>
|
|
|
|
|
/// <returns>Nuovo valore incrementato</returns>
|
|
|
|
|
private double updateAxisRefListByIncrDouble(int i, double delta, string searchString)
|
|
|
|
|
{
|
|
|
|
|
// leggo tutti i dati...
|
|
|
|
|
List<DataRefItem<string, string>> listaDR = currAdpConf.Axis[i].dataRefList;
|
|
|
|
|
// recupero valore giri...
|
|
|
|
|
double contTot = updateRefListByIncrDouble(i, delta, searchString, ref listaDR);
|
|
|
|
|
// salvo in adapter!
|
|
|
|
|
currAdpConf.Axis[i].dataRefList = listaDR;
|
|
|
|
|
return contTot;
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Aggiorna un valore RefList del vettore PATH in INCREMENTO e lo restituisce
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="i"></param>
|
|
|
|
|
/// <param name="delta"></param>
|
|
|
|
|
/// <param name="searchString"></param>
|
|
|
|
|
/// <returns>Nuovo valore incrementato</returns>
|
|
|
|
|
private uint updatePathRefListByIncr(int i, uint delta, string searchString)
|
|
|
|
|
{
|
|
|
|
|
// leggo tutti i dati...
|
|
|
|
@@ -2168,6 +2226,8 @@ namespace MTC_Adapter
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public bool procMovTotAssi(bool needSave)
|
|
|
|
|
{
|
|
|
|
|
DateTime adesso = DateTime.Now;
|
|
|
|
|
TimeSpan accumTime = adesso.Subtract(lastChekAccumTimeAxis);
|
|
|
|
|
for (int i = 0; i < currAdpConf.nAxis; i++)
|
|
|
|
|
{
|
|
|
|
|
// controllo valore riferimento...
|
|
|
|
@@ -2179,12 +2239,18 @@ namespace MTC_Adapter
|
|
|
|
|
// passo valore totale all'adapter
|
|
|
|
|
vettAxis[i].mAxDistDone.Value = contTot.ToString();
|
|
|
|
|
|
|
|
|
|
// salvo valore aggiuntivo x ore lavoro assi...
|
|
|
|
|
double oreTot = updateAxisRefListByIncrDouble(i, accumTime.TotalHours, "Axis_{0:00}_AccTime");
|
|
|
|
|
vettAxis[i].mAxAccTime.Value = oreTot.ToString("0.000", CultureInfo.InvariantCulture);
|
|
|
|
|
|
|
|
|
|
// segnalo necessità salvataggio!
|
|
|
|
|
needSave = true;
|
|
|
|
|
}
|
|
|
|
|
// ...aggiorno valore riferimento...
|
|
|
|
|
contDistMovAssi[i] = istDistMovAssi[i];
|
|
|
|
|
}
|
|
|
|
|
// salvo valore lastChekAccumTimeAxis
|
|
|
|
|
lastChekAccumTimeAxis = adesso;
|
|
|
|
|
|
|
|
|
|
return needSave;
|
|
|
|
|
}
|
|
|
|
|