completata gestione variabili analogiche x OSAI (Load assi...)
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
@@ -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...
|
||||
|
||||
+371
-548
File diff suppressed because it is too large
Load Diff
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user