tranne load (che non abbiamo) x asse caricato posizione programmata e attuale... FATTO!

This commit is contained in:
Samuele E. Locatelli
2017-04-24 16:20:12 +02:00
parent d6412efa8a
commit bb4f5e006f
4 changed files with 542 additions and 502 deletions
@@ -951,9 +951,10 @@ Namespace CNC
''' <summary>
''' Restituisce posizione assi (tutti)
''' </summary>
''' <param name="AxisPos"></param>
''' <param name="tipoPos">Tipo posizione richeista (1..6)</param>
''' <param name="AxisPos">Vettore posizioni richieste</param>
''' <returns></returns>
Public Overridable Function getAllAxisPos(ByRef AxisPos As OPENcontrol.GETINTDATA()) As Boolean
Public Overridable Function getAllAxisPos(tipoPos As Int16, ByRef AxisPos As OPENcontrol.GETINTDATA()) As Boolean
Return True
End Function
@@ -1095,7 +1095,7 @@ Retry: nRetry += 1
End Function
Public Overloads Overrides Function getAllAxisPos(ByRef AxisPos As OPENcontrol.GETINTDATA()) As Boolean
Public Overloads Overrides Function getAllAxisPos(tipoPos As Int16, ByRef AxisPos As OPENcontrol.GETINTDATA()) As Boolean
' RIFERIMENTO:
' CndexLinkUser.pdf | pag 146, 266
@@ -1111,7 +1111,7 @@ Retry: nRetry += 1
myGetAxesPosition.ProcNum = ProcessId
myGetAxesPosition.AxisName = "0"
myGetAxesPosition.NumAxis = AxisPos.Length
myGetAxesPosition.Select = 1
myGetAxesPosition.Select = tipoPos
myGetAxesPositionR = OPENws.GetAxesPosition(myGetAxesPosition)
If O_CheckRetError(myGetAxesPositionR.retval, myGetAxesPositionR.ErrClass, myGetAxesPositionR.ErrNum, "ReadCurrentAnomalyMsg() O_ReadCurrentAnomalyMsg CNC.OSAI_OPEN", szReturn) Then
+11 -149
View File
@@ -1629,8 +1629,10 @@ namespace MTC_Adapter
inizio = DateTime.Now;
// inizializzo x numero assi...
CMSCncLib.OPENcontrol.GETINTDATA[] posAssi= new CMSCncLib.OPENcontrol.GETINTDATA[currAdpConf.nAxis];
OSAI_ref.getAllAxisPos(ref posAssi);
CMSCncLib.OPENcontrol.GETINTDATA[] posAssiTgt = new CMSCncLib.OPENcontrol.GETINTDATA[currAdpConf.nAxis];
CMSCncLib.OPENcontrol.GETINTDATA[] posAssi = new CMSCncLib.OPENcontrol.GETINTDATA[currAdpConf.nAxis];
OSAI_ref.getAllAxisPos(1, ref posAssiTgt);
OSAI_ref.getAllAxisPos(2, ref posAssi);
if (utils.CRB("recTime")) TimingData.addResult("R-AXIS_POS", DateTime.Now.Subtract(inizio).Ticks);
// NON c'è LOAD assi...
@@ -1639,9 +1641,10 @@ namespace MTC_Adapter
CMSCncLib.Focas1.ODBSVLOAD loadAssi = OSAI_ref.getAllAxisLoad();
if (utils.CRB("recTime")) TimingData.addResult("R-AXIS_LOAD", DateTime.Now.Subtract(inizio).Ticks);
#endif
// nuova posizione (per calcoli)
double newPos = 0;
double newPosTgt = 0;
double distPerc = 0;
int newDir = 0;
string tipoAsse = "";
@@ -1653,159 +1656,18 @@ namespace MTC_Adapter
// per sicurezza try-catch
try
{
// in base a indice scelgo valore posizione e load
#if false
switch (i)
{
case 0:
valPos = posAssi.p1;
valLoad = loadAssi.svload1;
break;
case 1:
valPos = posAssi.p2;
valLoad = loadAssi.svload2;
break;
case 2:
valPos = posAssi.p3;
valLoad = loadAssi.svload3;
break;
case 3:
valPos = posAssi.p4;
valLoad = loadAssi.svload4;
break;
case 4:
valPos = posAssi.p5;
valLoad = loadAssi.svload5;
break;
case 5:
valPos = posAssi.p6;
valLoad = loadAssi.svload6;
break;
case 6:
valPos = posAssi.p7;
valLoad = loadAssi.svload7;
break;
case 7:
valPos = posAssi.p8;
valLoad = loadAssi.svload8;
break;
case 8:
valPos = posAssi.p9;
valLoad = loadAssi.svload9;
break;
case 9:
valPos = posAssi.p10;
valLoad = loadAssi.svload10;
break;
case 10:
valPos = posAssi.p11;
valLoad = loadAssi.svload11;
break;
case 11:
valPos = posAssi.p12;
valLoad = loadAssi.svload12;
break;
case 12:
valPos = posAssi.p13;
valLoad = loadAssi.svload13;
break;
case 13:
valPos = posAssi.p14;
valLoad = loadAssi.svload14;
break;
case 14:
valPos = posAssi.p15;
valLoad = loadAssi.svload15;
break;
case 15:
valPos = posAssi.p16;
valLoad = loadAssi.svload16;
break;
case 16:
valPos = posAssi.p17;
valLoad = loadAssi.svload17;
break;
case 17:
valPos = posAssi.p18;
valLoad = loadAssi.svload18;
break;
case 18:
valPos = posAssi.p19;
valLoad = loadAssi.svload19;
break;
case 19:
valPos = posAssi.p20;
valLoad = loadAssi.svload20;
break;
case 20:
valPos = posAssi.p21;
valLoad = loadAssi.svload21;
break;
case 21:
valPos = posAssi.p22;
valLoad = loadAssi.svload22;
break;
case 22:
valPos = posAssi.p23;
valLoad = loadAssi.svload23;
break;
case 23:
valPos = posAssi.p24;
valLoad = loadAssi.svload24;
break;
case 24:
valPos = posAssi.p25;
valLoad = loadAssi.svload25;
break;
case 25:
valPos = posAssi.p26;
valLoad = loadAssi.svload26;
break;
case 26:
valPos = posAssi.p27;
valLoad = loadAssi.svload27;
break;
case 27:
valPos = posAssi.p28;
valLoad = loadAssi.svload28;
break;
case 28:
valPos = posAssi.p29;
valLoad = loadAssi.svload29;
break;
case 29:
valPos = posAssi.p30;
valLoad = loadAssi.svload30;
break;
case 30:
valPos = posAssi.p31;
valLoad = loadAssi.svload31;
break;
case 31:
valPos = posAssi.p32;
valLoad = loadAssi.svload32;
break;
default:
// 2017.03.01 suggerimento Fabio: in CMS_FANUC in advanced compiler options mettere FS30D=1,SIEMENS=1 x leggere + assi?!?
valPos = posAssi.p1;
valLoad = loadAssi.svload1;
break;
}
#endif
//string axName = System.Text.Encoding.ASCII.GetString(posAssi[i].AxisName);
axName = Convert.ToChar(posAssi[i].AxisName);
axName = Convert.ToChar(posAssiTgt[i].AxisName);
newPos = posAssi[i].position;
// popolo valori...
newPosTgt = posAssiTgt[i].position;
// popolo valori... tranne LOAD
#if false
vettAxis[i].mAxLoad.Value = (double)(valLoad.data) / Math.Pow(10, valLoad.dec);
newPos = (double)(valPos.abs.data) / Math.Pow(10, valPos.abs.dec);
#endif
vettAxis[i].mAxPosAct.Value = newPos;
#if false
vettAxis[i].mAxPosTgt.Value = newPos + (double)(valPos.dist.data) / Math.Pow(10, valPos.dist.dec);
#endif
vettAxis[i].mAxPosTgt.Value = newPosTgt;
vettAxis[i].mAxFeedAct.Value = FeedRate;
@@ -1839,7 +1701,7 @@ namespace MTC_Adapter
if (utils.CRB("verbose"))
{
sb.AppendLine(string.Format("Asse {0}: PosAct:{1:N3}, ToGo:{2:N3}{3} | {4}", axName, newPos, "", "...", direzione));
sb.AppendLine(string.Format("Asse {0}: PosAct:{1:N3}, Prg:{2:N3} | {3}", axName, newPos, newPosTgt, direzione));
}
// salvo valori vettore prec...
File diff suppressed because it is too large Load Diff