From f21d4b71acf3c2fd4198dc8684db84ea6e1f4a6c Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Thu, 22 Feb 2018 12:36:46 +0100 Subject: [PATCH] ULteriori fix x SIEMENS --- .../CMSCncLib/CNC/CNC.SIEMENS/CNC.SIEMENS.vb | 97 ++++++++++++++----- MTC_Adapter/MTC_Adapter/AdapterSiemens.cs | 12 +-- 2 files changed, 78 insertions(+), 31 deletions(-) diff --git a/MTC_Adapter/CMSCncLib/CNC/CNC.SIEMENS/CNC.SIEMENS.vb b/MTC_Adapter/CMSCncLib/CNC/CNC.SIEMENS/CNC.SIEMENS.vb index 4183462..c7e10e0 100644 --- a/MTC_Adapter/CMSCncLib/CNC/CNC.SIEMENS/CNC.SIEMENS.vb +++ b/MTC_Adapter/CMSCncLib/CNC/CNC.SIEMENS/CNC.SIEMENS.vb @@ -909,6 +909,21 @@ Namespace CNC End Structure + + ''' + ''' Struttura dati MANDRINO + ''' + Public Structure UnOpData + ''' + ''' Carico Asse + ''' + Public Load As Single + ''' + ''' Speed asse + ''' + Public Speed As Single + End Structure + ''' ''' Struttura dati asse ''' @@ -926,10 +941,6 @@ Namespace CNC ''' Public PosTgt As Single ''' - ''' Velocità asse - ''' - Public Speed As Single - ''' ''' Feed asse ''' Public Feed As Single @@ -937,7 +948,6 @@ Namespace CNC ''' Feed Override asse ''' Public FeedOver As Single - End Structure ''' ''' Struttura dati UT @@ -970,24 +980,18 @@ Namespace CNC End Structure + ''' - ''' Restituisce tutti i dati assi insieme + ''' Restituisce tutti i dati UnOp ''' ''' - Public Function getAllAxisPos() As AxData() + Public Function getAllUnOpData() As UnOpData() ' RIFERIMENTO: - ' txt Giuseppe + ' PLC interface - ReDim itemRead(5) - itemRead(0) = New Item("DB241.DBD0:[16]") 'Posizione attuale - itemRead(1) = New Item("DB254.DBW140:[20]") 'Speed effettiva - itemRead(2) = New Item("DB254.DBB180:[20]") 'Carico effettivo - itemRead(3) = New Item("/Channel/MachineAxis/toolBaseDistToGo[u1,1,16]") - 'itemRead(3) = New Item("DB241.DBD0:[16]") 'Posizione Target !!!FARE!!! è altra variabile?!? AA_IM - itemRead(4) = New Item("/Channel/MachineAxis/actFeedRate[u1,1,16]") ' param manual NC, pg21 legge la feed... da salvare in valore assolulto... - itemRead(5) = New Item("/Channel/MachineAxis/feedRateOvr[u1,1,16]") ' param manual NC, pg215 legge la feedOver... - - '/Channel/MachineAxis/feedRateOvr[u1, 1,16] + ReDim itemRead(1) + itemRead(0) = New Item("DB254.DBB180:[20]") 'Carico effettivo MANDRINO + itemRead(1) = New Item("DB254.DBW140:[20]") 'Speed effettiva MANDRINO Do Try @@ -1000,19 +1004,62 @@ Namespace CNC End Try Loop - Dim datiAssi(19) As AxData + Dim datiAssi(19) As UnOpData + + + ' faccio copia valori! + For i As Integer = 0 To 19 + datiAssi(i).Load = UIntegerToSingle(itemRead(0).Value(i)) + datiAssi(i).Speed = UIntegerToSingle(itemRead(1).Value(i)) + Next i + + Return datiAssi + + End Function + + ''' + ''' Restituisce tutti i dati assi insieme + ''' + ''' + Public Function getAllAxisData() As AxData() + ' RIFERIMENTO: + ' txt Giuseppe + + ReDim itemRead(4) + itemRead(0) = New Item("DB241.DBD0:[16]") 'Posizione attuale + itemRead(1) = New Item("/Channel/MachineAxis/actFeedRate[u1,1,16]") ' param manual NC, pg21 legge la feed... da salvare in valore assolulto... + itemRead(2) = New Item("/Channel/MachineAxis/feedRateOvr[u1,1,16]") ' param manual NC, pg215 legge la feedOver... + itemRead(3) = New Item("/Channel/MachineAxis/toolBaseDistToGo[u1,1,16]") + itemRead(4) = New Item("/Channel/MachineAxis/aaLoad[u1,1,16]") ' param manual NC, pg426 legge carico effettivo asse PRIFIdrive in %... da sempre zero + + '/Channel/MachineAxis/speedOvr[u1,1,16] speed override asse NON VA - errore-eccezione + '/Channel/NckSpindle/driveLoad[u1,1,16] carico effettivo asse NON VA - errore-eccezione + '/Channel/MachineAxis/aaLoad[u1,1,16] pg426 carico effettivo asse DA SEMPRE ZERO + '/Channel/MachineAxis/vaLoad[u1,1,16] DA SEMPRE ZERO + '/Channel/MachineAxis/vaCurr[u1,1,16] DA SEMPRE ZERO + ' + + Do + Try + m_DataSvcRW.Read(itemRead) + Exit Do + Catch ex As DataSvcBusyException + Debug.Print(ex.Message) + Catch ex As DataSvcException + Throw New CmsNcException("ERR GetStaticData CNC.SIEMENS DataSvcException", ex) + End Try + Loop + + Dim datiAssi(15) As AxData ' faccio copia valori! For i As Integer = 0 To 15 'datiAssi(i).PosAct = itemRead(0).Value(i) datiAssi(i).PosAct = UIntegerToSingle(itemRead(0).Value(i)) + datiAssi(i).Feed = Math.Abs(Convert.ToSingle(itemRead(1).Value(i))) + datiAssi(i).FeedOver = Math.Abs(Convert.ToSingle(itemRead(2).Value(i))) datiAssi(i).PosTgt = Convert.ToSingle(itemRead(3).Value(i)) - datiAssi(i).Feed = Math.Abs(Convert.ToSingle(itemRead(4).Value(i))) - datiAssi(i).FeedOver = Math.Abs(Convert.ToSingle(itemRead(5).Value(i))) - Next i - For i As Integer = 0 To 19 - datiAssi(i).Speed = UIntegerToSingle(itemRead(1).Value(i)) - datiAssi(i).Load = UIntegerToSingle(itemRead(2).Value(i)) + datiAssi(i).Load = UIntegerToSingle(itemRead(4).Value(i)) Next i Return datiAssi diff --git a/MTC_Adapter/MTC_Adapter/AdapterSiemens.cs b/MTC_Adapter/MTC_Adapter/AdapterSiemens.cs index 3a02dcc..04a246c 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterSiemens.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterSiemens.cs @@ -968,9 +968,9 @@ namespace MTC_Adapter return memIndex; #endif } - - - + /// + /// Processo dati di path + /// public override void getPath() { base.getPath(); @@ -982,7 +982,6 @@ namespace MTC_Adapter if (utils.CRB("recTime")) TimingData.addResult("R-GCodModal", DateTime.Now.Subtract(inizio).Ticks); - #if false inizio = DateTime.Now; @@ -1055,7 +1054,7 @@ namespace MTC_Adapter // recupero in blocco dati assi... inizio = DateTime.Now; - SIEMENS.AxData[] ValAssi = SIEMENS_ref.getAllAxisPos(); + SIEMENS.AxData[] ValAssi = SIEMENS_ref.getAllAxisData(); if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-AXIS_ALL", ValAssi.Length * 4 * 2), DateTime.Now.Subtract(inizio).Ticks); @@ -1071,9 +1070,10 @@ namespace MTC_Adapter // imposto feed "generale" per asse... si potrebbe usare velocità del singolo asse... !!!FARE!!! verificare vettAxis[i].mAxFeedAct.Value = ValAssi[i].Feed;// FeedRate; - //vettAxis[i].mAxFeedAct.Value= ValAssi[i].Speed; vettAxis[i].mAxFeedOver.Value = ValAssi[i].FeedOver; // FeedRateOver; + vettAxis[i].mAxLoad.Value = ValAssi[i].Load; + // verifica pos TGT... NON E' orrettamente letta lato area memoria... vettAxis[i].mAxPosTgt.Value = ValAssi[i].PosTgt;