diff --git a/Installer CMS/FANUC/ADAPTER/MTC_Adapter.pdb b/Installer CMS/FANUC/ADAPTER/MTC_Adapter.pdb index 778ae09..61141d5 100644 Binary files a/Installer CMS/FANUC/ADAPTER/MTC_Adapter.pdb and b/Installer CMS/FANUC/ADAPTER/MTC_Adapter.pdb differ diff --git a/MTC_Sim/MTC_Sim/AdapterFanuc.cs b/MTC_Sim/MTC_Sim/AdapterFanuc.cs index da2d670..e3e0494 100644 --- a/MTC_Sim/MTC_Sim/AdapterFanuc.cs +++ b/MTC_Sim/MTC_Sim/AdapterFanuc.cs @@ -28,6 +28,51 @@ namespace MTC_Adapter /// protected FANUC FANUC_ref; + /// + /// wrapper chiamata lettura/scrittura fanuc... + /// + /// + /// + /// + /// + /// + public bool FanucMemRW(bool bWrite, FANUC.MemType MemType, Int32 memIndex, ref byte Value) + { + bool answ = false; + if (FANUC_ref.Connected) + { + try + { + answ = FANUC_ref.F_RW_Byte(bWrite, MemType, memIndex, ref Value); + } + catch + { } + } + return answ; + } + /// + /// wrapper chiamata lettura/scrittura fanuc... + /// + /// + /// + /// + /// + /// + public bool FanucMemRW(bool bWrite, FANUC.MemType MemType, Int32 memIndex, ref byte[] Value) + { + bool answ = false; + if (FANUC_ref.Connected) + { + try + { + answ = FANUC_ref.F_RW_Byte(bWrite, MemType, memIndex, ref Value); + } + catch + { } + } + return answ; + } + /// /// struttura dati fanuc x ALL DYN DATA /// C:\Users\samuele\Documents\FOCAS A02B-0207-K737_04.20\Document\SpecE\Position\cnc_rddynamic2.htm @@ -141,7 +186,7 @@ namespace MTC_Adapter byte[] MemBlock = new byte[Strobes.Length + Acknowl.Length]; int memIndex = 10500; inizio = DateTime.Now; - FANUC_ref.F_RW_Byte(R, FANUC.MemType.R, memIndex, ref MemBlock); + FanucMemRW(R, FANUC.MemType.R, memIndex, ref MemBlock); if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-STROBES", MemBlock.Length), DateTime.Now.Subtract(inizio).Ticks); // suddivido! @@ -183,7 +228,7 @@ namespace MTC_Adapter // leggo tutto!!! memIndex = 10660; inizio = DateTime.Now; - FANUC_ref.F_RW_Byte(R, FANUC.MemType.R, memIndex, ref MemBlock); + FanucMemRW(R, FANUC.MemType.R, memIndex, ref MemBlock); if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-STRB_DW1", MemBlock.Length), DateTime.Now.Subtract(inizio).Ticks); // check COD_M @@ -272,7 +317,7 @@ namespace MTC_Adapter if (ACK_DW1 != (StFlag32)BitConverter.ToUInt32(retACK_DW1, 0)) { inizio = DateTime.Now; - FANUC_ref.F_RW_Byte(W, FANUC.MemType.R, memIndex, ref retACK_DW1); + FanucMemRW(W, FANUC.MemType.R, memIndex, ref retACK_DW1); if (utils.CRB("recTime")) TimingData.addResult(string.Format("W{0}-DW1", retACK_DW1.Length), DateTime.Now.Subtract(inizio).Ticks); } @@ -286,7 +331,7 @@ namespace MTC_Adapter // scrivo su area PLC memIndex = 10508; inizio = DateTime.Now; - FANUC_ref.F_RW_Byte(W, FANUC.MemType.R, memIndex, ref retACK_DW2); + FanucMemRW(W, FANUC.MemType.R, memIndex, ref retACK_DW2); if (utils.CRB("recTime")) TimingData.addResult(string.Format("W{0}-DW2", retACK_DW2.Length), DateTime.Now.Subtract(inizio).Ticks); } } @@ -309,7 +354,7 @@ namespace MTC_Adapter // leggo tutto!!! int memIndex = 11000; inizio = DateTime.Now; - FANUC_ref.F_RW_Byte(R, FANUC.MemType.R, memIndex, ref MemBlockTestData); + FanucMemRW(R, FANUC.MemType.R, memIndex, ref MemBlockTestData); if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-TEST_DATA_DW1", MemBlockTestData.Length), DateTime.Now.Subtract(inizio).Ticks); // recupero cod univoco test e numero parametri impiegati @@ -510,7 +555,7 @@ namespace MTC_Adapter MemBlock = new byte[128]; // recupero tutti i 32 bit del blocco inizio = DateTime.Now; - FANUC_ref.F_RW_Byte(R, FANUC.MemType.R, memIndex, ref MemBlock); + FanucMemRW(R, FANUC.MemType.R, memIndex, ref MemBlock); if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-STRB_DW0", MemBlock.Length), DateTime.Now.Subtract(inizio).Ticks); try @@ -536,7 +581,7 @@ namespace MTC_Adapter { // recupero tutti i 32 bit del blocco inizio = DateTime.Now; - FANUC_ref.F_RW_Byte(R, FANUC.MemType.R, memIndex + i * 4, ref MemBlock); + FanucMemRW(R, FANUC.MemType.R, memIndex + i * 4, ref MemBlock); if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-STRB_DW0", MemBlock.Length), DateTime.Now.Subtract(inizio).Ticks); // da testare metodo copia alternativo !!!FARE!!! @@ -565,7 +610,7 @@ namespace MTC_Adapter memIndex = 10500; // scrivo update ad ack!!! inizio = DateTime.Now; - FANUC_ref.F_RW_Byte(W, FANUC.MemType.R, memIndex, ref retACK_DW0); + FanucMemRW(W, FANUC.MemType.R, memIndex, ref retACK_DW0); if (utils.CRB("recTime")) TimingData.addResult(string.Format("W{0}-ACK_DW0", retACK_DW0.Length), DateTime.Now.Subtract(inizio).Ticks); ackReturned = true; } @@ -582,7 +627,7 @@ namespace MTC_Adapter // invio INTERO set ACK_DW0 con bit abbassati... retACK_DW0 = BitConverter.GetBytes(Convert.ToUInt32(STRB_DW0 & ACK_DW0)); inizio = DateTime.Now; - FANUC_ref.F_RW_Byte(W, FANUC.MemType.R, memIndex, ref retACK_DW0); + FanucMemRW(W, FANUC.MemType.R, memIndex, ref retACK_DW0); if (utils.CRB("recTime")) TimingData.addResult(string.Format("W{0}-ACK_DW0", retACK_DW0.Length), DateTime.Now.Subtract(inizio).Ticks); } } @@ -638,22 +683,26 @@ namespace MTC_Adapter } // switch su EXE mode... - + string exeMode = ""; if (STRB_DW2.HasFlag(StFlag32.B08)) { - vettPath[idxPath].mPathExeMode.Value = "RUN"; + exeMode = "RUN"; } else if (STRB_DW2.HasFlag(StFlag32.B09)) { - vettPath[idxPath].mPathExeMode.Value = "READY"; + exeMode = "READY"; } else if (STRB_DW2.HasFlag(StFlag32.B10)) { - vettPath[idxPath].mPathExeMode.Value = "HOLD"; + exeMode = "HOLD"; } else if (STRB_DW2.HasFlag(StFlag32.B11)) { - vettPath[idxPath].mPathExeMode.Value = "FEEDHOLD"; + exeMode = "FEEDHOLD"; + } + if (vettPath[idxPath].mPathExeMode.Value.ToString() != exeMode) + { + vettPath[idxPath].mPathExeMode.Value = exeMode; } // verifico tipo path... @@ -666,7 +715,6 @@ namespace MTC_Adapter vettPath[idxPath].mPathType.Value = "ASSERV"; } - // verifico POWER ON... if (STRB_DW2.HasFlag(StFlag32.B13)) { @@ -737,7 +785,7 @@ namespace MTC_Adapter int memIndex = 14000; byte[] tabDatiMtz = new byte[4 * maintData.Length]; inizio = DateTime.Now; - FANUC_ref.F_RW_Byte(R, FANUC.MemType.R, memIndex, ref tabDatiMtz); + FanucMemRW(R, FANUC.MemType.R, memIndex, ref tabDatiMtz); if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-DatiMtz", tabDatiMtz.Length), DateTime.Now.Subtract(inizio).Ticks); // uno ad uno vado a inserirli nella mappa dei dati dell'adapter... int shift = 4; // 32bit @@ -950,7 +998,7 @@ namespace MTC_Adapter int numByte = 1 + (statusData.Length / 8); byte[] tabDatiStatus = new byte[numByte]; inizio = DateTime.Now; - FANUC_ref.F_RW_Byte(R, FANUC.MemType.R, memIndex, ref tabDatiStatus); + FanucMemRW(R, FANUC.MemType.R, memIndex, ref tabDatiStatus); if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-DatiStatus", tabDatiStatus.Length), DateTime.Now.Subtract(inizio).Ticks); // uno ad uno vado a inserirli nella mappa dei dati dell'adapter... int numero = 0; @@ -1050,7 +1098,7 @@ namespace MTC_Adapter int memIndex = 12000; byte[] PathData = new byte[4]; inizio = DateTime.Now; - FANUC_ref.F_RW_Byte(R, FANUC.MemType.R, memIndex, ref PathData); + FanucMemRW(R, FANUC.MemType.R, memIndex, ref PathData); if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-PathData", PathData.Length), DateTime.Now.Subtract(inizio).Ticks); // 2016.07.19 mod con Fabio @@ -1226,7 +1274,7 @@ namespace MTC_Adapter byte[] unOpSpeedMem = new byte[60]; inizio = DateTime.Now; - FANUC_ref.F_RW_Byte(R, FANUC.MemType.D, memIndex, ref unOpSpeedMem); + FanucMemRW(R, FANUC.MemType.D, memIndex, ref unOpSpeedMem); if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-SPEED_UNOP", unOpSpeedMem.Length), DateTime.Now.Subtract(inizio).Ticks); // NON VA: RICHIEDE OPZIONE... The extended driver/library function is necessary. @@ -1283,7 +1331,7 @@ namespace MTC_Adapter // leggo area memoria degli UT montati memIndex = 2960; inizio = DateTime.Now; - FANUC_ref.F_RW_Byte(R, FANUC.MemType.D, memIndex, ref elencoUtMem); + FanucMemRW(R, FANUC.MemType.D, memIndex, ref elencoUtMem); if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-NUMUT", elencoUtMem.Length), DateTime.Now.Subtract(inizio).Ticks); // decodifica da byte a int16 dell'ID Utensile for (int i = 0; i < maxNumOp; i++) @@ -1295,7 +1343,7 @@ namespace MTC_Adapter memIndex = 11300; byte[] tabUt_UT = new byte[2 * maxMemAddr]; inizio = DateTime.Now; - FANUC_ref.F_RW_Byte(R, FANUC.MemType.D, memIndex, ref tabUt_UT); + FanucMemRW(R, FANUC.MemType.D, memIndex, ref tabUt_UT); if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-TabUT-UT", tabUt_UT.Length), DateTime.Now.Subtract(inizio).Ticks); // decodifico TUTTI i maxMemAddr utensili for (int i = 0; i < maxMemAddr; i++) @@ -1314,7 +1362,7 @@ namespace MTC_Adapter // leggo FamUt puntuale.. memIndex = 11700 + 2 * j; inizio = DateTime.Now; - FANUC_ref.F_RW_Byte(R, FANUC.MemType.D, memIndex, ref int16Mem); + FanucMemRW(R, FANUC.MemType.D, memIndex, ref int16Mem); if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-TabUT-FamUT", int16Mem.Length), DateTime.Now.Subtract(inizio).Ticks); // step 2b: leggo puntualmente la FamUt dal suo indice... idFamUt[i] = BitConverter.ToUInt16(int16Mem, 0); @@ -1327,7 +1375,7 @@ namespace MTC_Adapter memIndex = 8900; byte[] tabFam_FamUt = new byte[2 * maxMemAddr]; inizio = DateTime.Now; - FANUC_ref.F_RW_Byte(R, FANUC.MemType.D, memIndex, ref tabFam_FamUt); + FanucMemRW(R, FANUC.MemType.D, memIndex, ref tabFam_FamUt); if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-TabFamUT-FamUT", tabFam_FamUt.Length), DateTime.Now.Subtract(inizio).Ticks); // decodifico TUTTI i maxMemAddr utensili for (int i = 0; i < maxMemAddr; i++) @@ -1348,7 +1396,7 @@ namespace MTC_Adapter // leggo FamUt puntuale.. memIndex = 10700 + 1 * j; inizio = DateTime.Now; - FANUC_ref.F_RW_Byte(R, FANUC.MemType.D, memIndex, ref int8Mem); + FanucMemRW(R, FANUC.MemType.D, memIndex, ref int8Mem); if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-TabUT-FamUT", 8), DateTime.Now.Subtract(inizio).Ticks); // step 3b: leggo puntualmente il TIPO DI vita UT dal suo indice... idTipoVitaUt[i] = int8Mem; @@ -1369,7 +1417,7 @@ namespace MTC_Adapter // leggo FamUt puntuale.. memIndex = 13100 + 4 * j; inizio = DateTime.Now; - FANUC_ref.F_RW_Byte(R, FANUC.MemType.D, memIndex, ref int32Mem); + FanucMemRW(R, FANUC.MemType.D, memIndex, ref int32Mem); if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-TabUT-VitaRes", int32Mem.Length), DateTime.Now.Subtract(inizio).Ticks); // leggo puntualmente valore della vita ut residua da indice utensile... valVitaUtRes[i] = BitConverter.ToInt32(int32Mem, 0); diff --git a/MTC_Sim/VersGen/AdapterVers.cs b/MTC_Sim/VersGen/AdapterVers.cs index aadc70b..5d0f05f 100644 --- a/MTC_Sim/VersGen/AdapterVers.cs +++ b/MTC_Sim/VersGen/AdapterVers.cs @@ -5,7 +5,7 @@ using System.Reflection; -[assembly: AssemblyVersion("1.1.39.107")] -[assembly: AssemblyFileVersion("1.1.39.107")] +[assembly: AssemblyVersion("1.1.40.107")] +[assembly: AssemblyFileVersion("1.1.40.107")] [assembly: AssemblyCopyright("Steamware-SCM-CMS © 2015-2016")] [assembly: AssemblyCompany("Steamware-SCM-CMS")] diff --git a/MTC_Sim/VersGen/AdapterVers.tt b/MTC_Sim/VersGen/AdapterVers.tt index 0ca0038..bcaa0ff 100644 --- a/MTC_Sim/VersGen/AdapterVers.tt +++ b/MTC_Sim/VersGen/AdapterVers.tt @@ -6,8 +6,8 @@ using System.Reflection; -[assembly: AssemblyVersion("1.1.39.<#= this.RevisionNumber #>")] -[assembly: AssemblyFileVersion("1.1.39.<#= this.RevisionNumber #>")] +[assembly: AssemblyVersion("1.1.40.<#= this.RevisionNumber #>")] +[assembly: AssemblyFileVersion("1.1.40.<#= this.RevisionNumber #>")] [assembly: AssemblyCopyright("Steamware-SCM-CMS © 2015-<#= DateTime.Now.Year #>")] [assembly: AssemblyCompany("Steamware-SCM-CMS")] <#+