From c6e8edbed7ed066b6fde1d9cb366baee813719f4 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Thu, 20 Oct 2016 12:57:24 +0200 Subject: [PATCH] Refresh gestione EXE mode (check precedente mode prima di sovrascrivere) + nuovi installers --- Installer CMS/FANUC/ADAPTER/MTC_Adapter.pdb | Bin 212480 -> 212480 bytes MTC_Sim/MTC_Sim/AdapterFanuc.cs | 98 +++++++++++++++----- MTC_Sim/VersGen/AdapterVers.cs | 4 +- MTC_Sim/VersGen/AdapterVers.tt | 4 +- 4 files changed, 77 insertions(+), 29 deletions(-) diff --git a/Installer CMS/FANUC/ADAPTER/MTC_Adapter.pdb b/Installer CMS/FANUC/ADAPTER/MTC_Adapter.pdb index 778ae09e0fdcc7c03e467b9d8eb6d30910e19054..61141d53e68a983c0e5759786301f44d177ef59b 100644 GIT binary patch delta 39147 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%0DvVr%#rpefu9S{&#On`|`8- z!i1X)j zBobTcOy!N)^6J;W^T|JW>HSAAOQ&l#f#a|B(NEv7B7v!cfYs&OFNI?Oz@GZyg|m7PhKT6)JM8;_*$3tN&Thv@8D#m zb+*!lxrVQw4`0`r#aDZ!(>;K%o{w}Md^ZF2_$!@o@?6gBJ`z4Kk1r$m@a@IN!sl$I z^Nf7qZ+-5C*~q_lIxVvUUmYKr^7@=RcMqixc)5&pykbYEqy0-KOv35wfV_vt=K*`; zi}O*?alU-g|8spg@vXsE&qtlXF*2@QEQQ8gbvd9zzB%XOB{bA!zb`|qTa_Sc(C zLwTK1f)1BXXe}r{QL>5jmFv^>m-tt4`YKG=65qc1W%#<6;TwZ5#M}O*OF9|npDq-1ZKa^{VmV&w z=4_?Yy|R>ld_l)8?YoJuWZz3P=lGJBys)Z@kA(8ps@^_)yhpB7le!TlPkDXZ?rb;w z=fd22O5Pz}%X|If{b!LRs%hMMY6^ej-E@3-5UclGpS)1KjSt^Rd~N^MC)bYVoy9BS zPL9-HN-A##ud0oe?l@hayd6Buhi?eJL?1p6z8D|ASMWK7koGTqz=ARo?)N7An{;25 zk?xw0bk6->Io|i^tE5Tzyvt05>?BaBJf2sXbWh8u|IN@K?ttlhj4xj00 z|KnvOJnu6h&(ZvRw@f6yLwC8IU%J)KRxpjV-f`i~KOK;P_#Cg4^feIW72)Z6Q7E11 zDQ=CtGbU2!Cy+dE;`8QN+LsplxuF3~jZ(Fq-=-j~|f#h2v6*B##)?ektONl?=L zicgQjJ6BS!@7D}7iC=GZmJnMNV@gAJ&rR3`=V)#4K8}*0WV!|45ZPfX?UNUvdo%K` zDH2bj^S1OmA0lg?+yCN}Hw}3c7O(hjLS9RBCt+#dK78JR7$-;4o8~?0$(OAZlFph2pHxW=DbGZ9pH`U-{rYZQ($Ft1AXI*;)dO`$ nS*ob1--~v;uIobO*IJ9wE9ljYnO#3Hw 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")] <#+