diff --git a/MTC_Sim/MTC_Sim/AdapterESA.cs b/MTC_Sim/MTC_Sim/AdapterESA.cs
index e6d8fee..ac5594a 100644
--- a/MTC_Sim/MTC_Sim/AdapterESA.cs
+++ b/MTC_Sim/MTC_Sim/AdapterESA.cs
@@ -189,8 +189,7 @@ namespace MTC_Adapter
}
needSave = procGiriTotUnOp(needSave);
- // giri spostamento totale assi!
-
+ // spostamento totale assi!
for (int i = 0; i < 3; i++)
{
// primo è metri, secondo km (moltiplico x 1000)
@@ -364,6 +363,15 @@ namespace MTC_Adapter
}
vettAxis[i].mAxDir.Value = newDir;
+ // se la direzione è variata salvo il cambio direzione...
+ if (newDir != prevDirAxis[i])
+ {
+ // salvo "+1" come cambi direzione
+ istNumInvAssi[i]++;
+ }
+
+ // 2016.06.05 tolto x gestione con procNumInvAssi
+#if false
// se la direzione è variata salvo il cambio direzione...
if (newDir != prevDirAxis[i])
{
@@ -374,7 +382,8 @@ namespace MTC_Adapter
{
// salvo "0" come aumento...
vettAxis[i].mAxInvDDone.Value = incrNumInvAssi(i, 0);
- }
+ }
+#endif
// salvo valori vettore prec...
prevPosAxis[i] = newPos;
diff --git a/MTC_Sim/MTC_Sim/AdapterFanuc.cs b/MTC_Sim/MTC_Sim/AdapterFanuc.cs
index 8fdfe7b..c1ad185 100644
--- a/MTC_Sim/MTC_Sim/AdapterFanuc.cs
+++ b/MTC_Sim/MTC_Sim/AdapterFanuc.cs
@@ -713,6 +713,7 @@ namespace MTC_Adapter
///
private void getMtzDataFromPlc()
{
+ bool needSave = false;
// recupero i dati di manutenzione dall'area di memoria IN BLOCCO
int memIndex = 14000;
byte[] tabDatiMtz = new byte[4 * maintData.Length];
@@ -735,11 +736,55 @@ namespace MTC_Adapter
case "Path_01_PZ_TOT":
vettPath[0].mPathPartCount.Value = BitConverter.ToUInt32(tabDatiMtz, shift * i);
break;
+ case "Axis_01_DistDone":
+ istDistMovAssi[0] = BitConverter.ToUInt32(tabDatiMtz, shift * i);
+ break;
+ case "Axis_01_Invers":
+ istNumInvAssi[0] = BitConverter.ToUInt32(tabDatiMtz, shift * i);
+ break;
+ case "Axis_02_DistDone":
+ istDistMovAssi[1] = BitConverter.ToUInt32(tabDatiMtz, shift * i);
+ break;
+ case "Axis_02_Invers":
+ istNumInvAssi[1] = BitConverter.ToUInt32(tabDatiMtz, shift * i);
+ break;
+ case "Axis_03_DistDone":
+ istDistMovAssi[2] = BitConverter.ToUInt32(tabDatiMtz, shift * i);
+ break;
+ case "Axis_03_Invers":
+ istNumInvAssi[2] = BitConverter.ToUInt32(tabDatiMtz, shift * i);
+ break;
+ case "Axis_04_DistDone":
+ istDistMovAssi[3] = BitConverter.ToUInt32(tabDatiMtz, shift * i);
+ break;
+ case "Axis_04_Invers":
+ istNumInvAssi[3] = BitConverter.ToUInt32(tabDatiMtz, shift * i);
+ break;
+ case "Axis_05_DistDone":
+ istDistMovAssi[4] = BitConverter.ToUInt32(tabDatiMtz, shift * i);
+ break;
+ case "Axis_05_Invers":
+ istNumInvAssi[4] = BitConverter.ToUInt32(tabDatiMtz, shift * i);
+ break;
+ case "Axis_06_DistDone":
+ istDistMovAssi[5] = BitConverter.ToUInt32(tabDatiMtz, shift * i);
+ break;
+ case "Axis_06_Invers":
+ istNumInvAssi[5] = BitConverter.ToUInt32(tabDatiMtz, shift * i);
+ break;
default:
break;
}
}
+ // verifica se si debba aggiornare XML (e salva in adapter dati spostamento assi)
+ needSave = procMovTotAssi(needSave);
+ needSave = procNumInvAssi(needSave);
+
+ // salvo se necessario!
+ if (needSave) parentForm.persistXmlData();
+ // -------------------------------------------
+
}
///
@@ -1245,6 +1290,8 @@ namespace MTC_Adapter
}
vettAxis[i].mAxDir.Value = newDir;
+ // 2016.06.05 tolto x gestione da procNumInvAssi
+#if false
// se la direzione è variata salvo il cambio direzione...
if (newDir != prevDirAxis[i])
{
@@ -1255,7 +1302,8 @@ namespace MTC_Adapter
{
// salvo "0"...
vettAxis[i].mAxInvDDone.Value = 0;
- }
+ }
+#endif
// salvo valori vettore prec...
prevPosAxis[i] = newPos;
diff --git a/MTC_Sim/MTC_Sim/AdapterGeneric.cs b/MTC_Sim/MTC_Sim/AdapterGeneric.cs
index dd15a63..0dff303 100644
--- a/MTC_Sim/MTC_Sim/AdapterGeneric.cs
+++ b/MTC_Sim/MTC_Sim/AdapterGeneric.cs
@@ -571,6 +571,10 @@ namespace MTC_Adapter
/// Vettore ATTUALE dei contatori del movimento degli assi
///
public uint[] contDistMovAssi;
+ ///
+ /// Vettore ATTUALE dei contatori del num inv degli assi
+ ///
+ public uint[] contNumInvAssi;
///
@@ -589,6 +593,10 @@ namespace MTC_Adapter
/// Vettore ISTANTANEO dei contatori del movimento degli assi
///
public uint[] istDistMovAssi;
+ ///
+ /// Vettore ISTANTANEO dei contatori del num inv degli assi
+ ///
+ public uint[] istNumInvAssi;
///
/// posizione precedente assi per calcolo distanze...
@@ -1160,18 +1168,21 @@ namespace MTC_Adapter
// salvo valore letto
contGiriElettrom[i] = contTotGiri;
}
- // imposto fisso a 3 assi...
- contDistMovAssi = new uint[3];
- istDistMovAssi = new uint[3];
- for (int i = 0; i < 3; i++)
+ // imposto num assi...
+ contDistMovAssi = new uint[currAdpConf.nAxis];
+ istDistMovAssi = new uint[currAdpConf.nAxis];
+ contNumInvAssi= new uint[currAdpConf.nAxis];
+ istNumInvAssi = new uint[currAdpConf.nAxis];
+ for (int i = 0; i < currAdpConf.nAxis; i++)
{
// leggo tutti i dati...
List> listaDR = currAdpConf.Axis[i].dataRefList;
// punto all'item
DataRefItem riContDist = listaDR.Find(x => x.Key == string.Format("Axis_{0:00}_DistDone", i + 1));
- // recupero valore giri...
- uint contTotKm = Convert.ToUInt32(riContDist.Value);
- contDistMovAssi[i] = contTotKm;
+ DataRefItem riNumInv = listaDR.Find(x => x.Key == string.Format("Axis_{0:00}_Invers", i + 1));
+ // recupero valori...
+ contDistMovAssi[i] = Convert.ToUInt32(riContDist.Value);
+ contNumInvAssi[i] = Convert.ToUInt32(riNumInv.Value);
}
mAlarmSystem.Normal();
@@ -1757,7 +1768,6 @@ namespace MTC_Adapter
if (istGiriElettrom[i] > contGiriElettrom[i])
{
int deltaGiri = istGiriElettrom[i] - contGiriElettrom[i];
- contGiriElettrom[i] = istGiriElettrom[i];
// leggo tutti i dati...
List> listaDR = currAdpConf.UnOp[i].dataRefList;
// punto all'item
@@ -1789,39 +1799,38 @@ namespace MTC_Adapter
return needSave;
}
///
- /// Processing delle variabili sul totale km percorsi dagli assi
+ /// Processing delle variabili sul totale m percorsi dagli assi
///
///
///
public bool procMovTotAssi(bool needSave)
{
- for (int i = 0; i < 3; i++)
+ for (int i = 0; i < currAdpConf.nAxis; i++)
{
// controllo valore riferimento...
if (istDistMovAssi[i] > contDistMovAssi[i])
{
- uint deltaMov = istDistMovAssi[i] - contDistMovAssi[i];
- contDistMovAssi[i] = istDistMovAssi[i];
+ uint delta = istDistMovAssi[i] - contDistMovAssi[i];
// leggo tutti i dati...
List> listaDR = currAdpConf.Axis[i].dataRefList;
// punto all'item
DataRefItem riContDist = listaDR.Find(x => x.Key == string.Format("Axis_{0:00}_DistDone", i + 1));
// recupero valore giri...
- uint contTotKm = Convert.ToUInt32(riContDist.Value);
+ uint contTot = Convert.ToUInt32(riContDist.Value);
// aggiungo giri...
- contTotKm += deltaMov;
+ contTot += delta;
// tolgo vecchio item
listaDR.Remove(riContDist);
// lo aggiorno...
- riContDist.Value = contTotKm.ToString();
+ riContDist.Value = contTot.ToString();
// riaggiungo item
listaDR.Add(riContDist);
// salvo in adapter!
currAdpConf.Axis[i].dataRefList = listaDR;
- // passo valore num giri (migliaia) all'adapter
- vettAxis[i].mAxAccTime.Value = contTotKm.ToString();
+ // passo valore totale all'adapter
+ vettAxis[i].mAxDistDone.Value = contTot.ToString();
// segnalo necessità salvataggio!
needSave = true;
@@ -1833,6 +1842,53 @@ namespace MTC_Adapter
return needSave;
}
+ ///
+ /// Processing delle variabili sul totale num inversioni degli assi
+ ///
+ ///
+ ///
+ public bool procNumInvAssi(bool needSave)
+ {
+ for (int i = 0; i < currAdpConf.nAxis; i++)
+ {
+ // controllo valore riferimento...
+ if (istNumInvAssi[i] > contNumInvAssi[i])
+ {
+ uint delta = istNumInvAssi[i] - contNumInvAssi[i];
+ // leggo tutti i dati...
+ List> listaDR = currAdpConf.Axis[i].dataRefList;
+ // punto all'item
+ DataRefItem riNumInv = listaDR.Find(x => x.Key == string.Format("Axis_{0:00}_Invers", i + 1));
+ // recupero valore giri...
+ uint contTot = Convert.ToUInt32(riNumInv.Value);
+ // aggiungo giri...
+ contTot += delta;
+ // tolgo vecchio item
+ listaDR.Remove(riNumInv);
+ // lo aggiorno...
+ riNumInv.Value = contTot.ToString();
+ // riaggiungo item
+ listaDR.Add(riNumInv);
+
+ // salvo in adapter!
+ currAdpConf.Axis[i].dataRefList = listaDR;
+
+ // passo valore totale all'adapter
+ vettAxis[i].mAxInvDDone.Value = contTot.ToString();
+
+ // segnalo necessità salvataggio!
+ needSave = true;
+ }
+ // ...aggiorno valore riferimento...
+ contNumInvAssi[i] = istNumInvAssi[i];
+ }
+
+ return needSave;
+ }
+
+
+ // 2016.06.05 tolto x gestione con procNumInvAssi
+#if false
///
/// Incrementa valore salvato del numero inversioni assi effettuate
///
@@ -1860,7 +1916,8 @@ namespace MTC_Adapter
currAdpConf.Axis[idxAsse].dataRefList = listaDR;
return contInvers;
- }
+ }
+#endif
#endregion