completata gestione variabili analogiche x OSAI (Load assi...)

This commit is contained in:
Samuele E. Locatelli
2017-05-10 11:50:19 +02:00
parent 2fdd7b15b8
commit 8ffe44957d
5 changed files with 448 additions and 574 deletions
+19 -1
View File
@@ -877,6 +877,23 @@ namespace MTC_Adapter
// verifica se debba salvare e mostrare dati
checkSavePersDataLayer();
}
/// <summary>
/// Gestione lettura dati analogici
/// </summary>
private void getAnalogDataFromPlc()
{
// recupero i dati di manutenzione dall'area di memoria IN BLOCCO
int memIndex = 15000;
byte[] tabDatiAnalogByte = new byte[4 * analogData.Length];
uint[] tabDatiAnalog = new uint[analogData.Length];
inizio = DateTime.Now;
FanucMemRW(R, FANUC.MemType.R, memIndex, ref tabDatiAnalogByte);
if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-DatiAnalog", tabDatiAnalogByte.Length*4), DateTime.Now.Subtract(inizio).Ticks);
// copio byte --> word!
Buffer.BlockCopy(tabDatiAnalogByte, 0, tabDatiAnalog, 0, tabDatiAnalogByte.Length);
// decodifico aree memoria secondo tab configurazione
processAnalogData(tabDatiAnalog, analogData);
}
/// <summary>
/// Gestione lettura dati status da PLC
@@ -962,7 +979,8 @@ namespace MTC_Adapter
// gestisco lettura dati manutenzione da PLC...
getMtzDataFromPlc();
// gestisco lettura dati analogici da PLC...
getAnalogDataFromPlc();
// gestisco lettura dati status da PLC...
getStatusDataFromPlc();
}
+40 -2
View File
@@ -742,6 +742,10 @@ namespace MTC_Adapter
/// </summary>
public double[] istDistMovAssi;
/// <summary>
/// Vettore ISTANTANEO dei contatori del LOAD degli assi
/// </summary>
public double[] istLoadAssi;
/// <summary>
/// Vettore ISTANTANEO dei contatori del tempo cumulato degli assi
/// </summary>
public double[] istAccTimeAssi;
@@ -1656,7 +1660,7 @@ namespace MTC_Adapter
currProtMag[i] = getStoredValUInt(string.Format("ProtMagazzino_{0:00}_Count", i + 1));
}
}
catch(Exception exc)
catch (Exception exc)
{
lg.Error(string.Format("Eccezione in decodifica valori PersLayer: {0}{1}", Environment.NewLine, exc));
}
@@ -1715,6 +1719,7 @@ namespace MTC_Adapter
// imposto num assi e leggo valori salvati...
contDistMovAssi = new double[currAdpConf.nAxis];
istDistMovAssi = new double[currAdpConf.nAxis];
istLoadAssi = new double[currAdpConf.nAxis];
contNumInvAssi = new uint[currAdpConf.nAxis];
istAccTimeAssi = new double[currAdpConf.nAxis];
contAccTimeAssi = new double[currAdpConf.nAxis];
@@ -2486,6 +2491,39 @@ namespace MTC_Adapter
}
}
/// <summary>
/// Processa la tabella di memoria dei dati analogici
/// </summary>
/// <param name="tabDatiAnag"></param>
/// <param name="analogData"></param>
public void processAnalogData(uint[] tabDatiAnag, otherData[] analogData)
{
// uno ad uno vado a inserirli nella mappa dei dati dell'adapter...
int numero = 0;
uint valRead = 0;
for (int i = 0; i < analogData.Length; i++)
{
numero = 0;
valRead = 0;
// decodifico...
if (analogData[i].varName.StartsWith("Axis_"))
{
if (analogData[i].varName.EndsWith("_Load"))
{
try
{
numero = Convert.ToInt32(analogData[i].varName.Replace("Axis_", "").Replace("_Load", ""));
}
catch
{ }
if (numero > 0)
{
istLoadAssi[numero - 1] = tabDatiAnag[i];
}
}
}
}
}
/// <summary>
/// processa dataLayer e se necessario salva/mostra
/// </summary>
public void checkSavePersDataLayer()
@@ -3534,7 +3572,7 @@ namespace MTC_Adapter
{
answ = Convert.ToDouble(getStoredVal(keyVal));
}
catch(Exception exc)
catch (Exception exc)
{
lg.Error(string.Format("Eccezione in getStoredValDouble: {0}{1}", Environment.NewLine, exc));
}
+18 -5
View File
@@ -1099,6 +1099,20 @@ namespace MTC_Adapter
// verifica se debba salvare e mostrare dati
checkSavePersDataLayer();
}
/// <summary>
/// Gestione lettura dati analogici
/// </summary>
private void getAnalogDataFromPlc()
{
// recupero i dati di manutenzione dall'area di memoria IN BLOCCO
int memIndex = 19434;
uint[] tabDatiAnalog = new uint[analogData.Length];
inizio = DateTime.Now;
OsaiMemRW_DWord(R, OSAI.MemTypeWord.MW_CODE, memIndex, ref tabDatiAnalog);
if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-DatiAnalog", tabDatiAnalog.Length * 4), DateTime.Now.Subtract(inizio).Ticks);
// decodifico aree memoria secondo tab configurazione
processAnalogData(tabDatiAnalog, analogData);
}
/// <summary>
/// Gestione lettura dati status da PLC
@@ -1223,7 +1237,8 @@ namespace MTC_Adapter
// gestisco lettura dati manutenzione da PLC...
getMtzDataFromPlc();
// gestisco lettura dati analogici da PLC...
getAnalogDataFromPlc();
// gestisco lettura dati status da PLC...
getStatusDataFromPlc();
}
@@ -1550,9 +1565,7 @@ namespace MTC_Adapter
newPosTgt = posAssiTgt[i].position;
// popolo valori... LOAD gestito da vettore letto con area memoria AnalogData.map
#if false
vettAxis[i].mAxLoad.Value = (double)(valLoad.data) / Math.Pow(10, valLoad.dec);
#endif
vettAxis[i].mAxLoad.Value = istLoadAssi[i];
vettAxis[i].mAxPosAct.Value = newPos;
vettAxis[i].mAxPosTgt.Value = newPosTgt;
@@ -1589,7 +1602,7 @@ namespace MTC_Adapter
if (utils.CRB("verbose"))
{
sb.AppendLine(string.Format("Asse {0}: PosAct:{1:N3}, Prg:{2:N3} | {3}", axName, newPos, newPosTgt, direzione));
sb.AppendLine(string.Format("Asse {0}: PosAct:{1:N3} | Prg:{2:N3} | Load:{3:N1} | {4}", axName, newPos, newPosTgt, istLoadAssi[i], direzione));
}
// salvo valori vettore prec...
File diff suppressed because it is too large Load Diff
-18
View File
@@ -138,24 +138,6 @@
<metadata name="K.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="X.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Y.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Z.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="I.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="J.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="K.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>104, 17</value>
</metadata>