From c1ea415273f7d719cd350828a74bd839ad6426b2 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Fri, 21 Apr 2017 11:07:10 +0200 Subject: [PATCH] Portato metodi decodifica aree memoria manutenzione in AdapterGeneric --- MTC_Adapter/.vs/MTC_Adapter.sqlite | Bin 2666496 -> 2666496 bytes MTC_Adapter/MTC_Adapter/AdapterFanuc.cs | 42 +++-- MTC_Adapter/MTC_Adapter/AdapterGeneric.cs | 208 ++++++++++++++++++++++ MTC_Adapter/MTC_Adapter/AdapterOsai.cs | 203 +-------------------- 4 files changed, 240 insertions(+), 213 deletions(-) diff --git a/MTC_Adapter/.vs/MTC_Adapter.sqlite b/MTC_Adapter/.vs/MTC_Adapter.sqlite index 8f4e3b5c9dc652e42b08b37fbd22d77ace1fc61c..876f78a0e43c36fc6541c6725a355dd0c5773db8 100644 GIT binary patch delta 11741 zcmZ{K33yZ2mGC?7Jw5GuvSnG8Wm%Gq!EC|?3^B&o^2X+cu!Su#vJu3=mW(A6NW=1; zQ+n@KMRyQ>K81mt6v(duUpno zzpUZ8PXgsTi^PKrCvIc#U#0k>I4N#>uK4IGk;lKwGd*|vl#en}6o(QcetG6`+X-}n zmwXrjQGgzVl`7bBa&#OjOTf+|gcFAVe^rQQ#3Aw1=Za7Chz|VQ-K+?6D?g<27(}3i zoag~x=G-ZsJavF|`wH|z;}w|$Ad*!DZy`?kNaJ!m^P)$4?pz;-P2 z`1|kFRv!?U1|ZI>P->oQ`Z)z==CxHEp`V`p0^uxor|G@KZ?EvC}A#|6f#A_g^Z zSxR662p$+88r~Hih^915ASp2O5!0EBuH7FUi}r6=-4h;)4>hV1tHuOo5fTh0;`?J` znOEDK8>tSZ`vk^^i0J5OcqF+;W2hVzn7IgF7aL0sB~u;IR5ZLRno6hwixUFl0+Y}Y z+1R4OLUB^@8z?gusenv(yDx8R`LMuLqrBek#GWu}v3qEbMpn6(j8=n(L8c(b7iSnQzUb! zqpFP#9*9z%l7l1ts6e8BV0b({8ZUUuTDW=3)OCQ-^Tv7gDGteG!@Ej zqOmtRmKcbI4~z_Jre}(}0)9G*dy^8kCZY2{s(WZab6TdSD^Noz{2K&jHX6Ah6-|vN z|7@l+lU=?+N*TOSU=|>yqEW|9iLqTOv8GaJoxs%RDK@0WhT?nvjHI-WPS;?3a9VU{ z#FfF>bevERl@b|_j*Tb+I!8uR2bK6MSh!`Swq)1RXvu}~f#fdD#=x3_1NGW!K^$8B zziF$H1XukpCL@J9rGHrItEP(kx&)>M%~#jFvfedOnWd`&D$9;lT0k6G709p0$~GDh z?TPVtDmJEiP7@G_PO=x;)zZdb_j?;A){j%nA|BH8m^f+K6C^Y46GS zSGye4f~sbkl!(+{uKDtk0lf1V}rN=l~SV>g^D_XnT115FGOl`@hqS!j;Dr( zape|rSLWAis@3_NpU|+wv zjU`57W2vE7VHEEinwSu^XDm9Rml~WcWbR$-RZV|ltrm3etSwccSJ!H3%G&LnLmh&( zx44Kg3E{A6rIQty>5$Bgy>3-Vcem!%c(*p-ecfd$!I^Gvh>G?GsJ@%AbghiVQD2uj z#z{X^R#2)Ezrc9V;9N1SPzf@D9)I4Wr9SjJYN)16mBd?4#bY%>(U=c!^Qx#KFNOxP zAW8-K%jm=-Xnv%lEzjXm(QXeWD9WLrb6^f*FY`i=ZxdD2LK!*|gX1Hycq(a7G1X>e&6xyJ zw1O`=BBJ0Nt{!o3N12X#2|4vtPvIoDo7JqWKcoc_(i-5;xt*D3Sw1|pZrSz z)cE?VAXLBrwKpjBVsd27f|3)JywSg*FS0JYe}H*Q<@HHeR;qO*)39YyH^vrg(gZLU zR7P?*1fG0MlLtfKZ=_=uNmxHbWa(#KRcR|EEEqNULAoNno7$C8G&H#$g3_BPd$EMo zLh08~Wl`l1Nu5}5kYCBnz0uUr{#bZ*d`J=UvPx4dbx=m6(HO&0J2_qjHRdxa8Tn=v z%vIHXz6#2h(Q(}pmI)84-8;TAmSTRU(t9PW6aj?y3=NJYl8N0Z<^>f;imJiiLit@1 z)(98Ut?uY#{!XRvNXs#{5!#*@8A-&KGRIWRED0+{6PiS>+{Jn<%>62Ye5)GjL@IQF zgf(KVLiB^msz5dKQT&Ii|QMhC)80$-%L<* zHQ758$^%rNQmIyHo=n0`t9v{8ZrY$NJMtrxtd98hOjxFVJ7yJPphfpRIt#q{G~<@4 zXgut%ZwS{hf1xVTB!vWKP%%~dkucZAXg-)H1qG&4K}2t3D|CpN5~lfFV!HmFfTz$s zkmg!goS%|f36p%Y!aP~cmg$%mOBDjMNkP=lU}rd)@2Yw%k}&IUAn(q`9b=uhtax<+ z<&iM)D?!&2jbjVFtDt;^gn7RPF`I{yRm zNRe~!q)OtJiu4OnQ_d?nzq%0bR(Z&gIj~?Z6-&8Rk39EzRHp-YRXgyQH>W~ZX^Jc!ZsemYvus&!eXzF+*EDpH| z*wCizfD5ahjLrq`Ox1p@3JSAw{=lSFHD*az8JZAGCeun{__~T9m*zqsA1`4E3&UD0 zc9|0o1hsB+u7tIrQz?O0TEM?ZWeiBzuqd1ERng(p#)G5Uo=NMWXGkD0OBKd_mZ00L zb&%wtd7y6B$oY9t)5=BTt24M!v@iNL#TjMWShKDb^p2+AD2QOvhDsFt`re8|*H$ zGE^?%rZj}y*yY8>qQgqz`UiEGN@+8;M~H0C9eE^&67gh#paOfWQVF-KN`k{fhw7SxM)|Ev={R42s0_ivs<{1>nhB}0SGg7NQivdzYIar0q-Gg|-1 zE`^7<<LH^?nu|BHQ# z{f_vCc)z$_^g6CM9&^MU4fa3UU$!5^LqO5?bKCv4?Y5xxvh|17z1Dimzgqsl-_2RrW~JKN}=2J-%5d$Hnrk*r&(!s5fOQWL@) z{Ay+eJw<){0t8s-Q{?!`39+bxJRgC7GKg<2;s?q3HF&J*9CW#i$m9w0TQl{i%E-t( zyL0M%8>|QAG<7k#9)r5vl#@$Ou|^{9hT^G19nfdpX5o%9Nw`qTS-4@ifU$jr{RLOa zc{rzd*4D%>WGlEvuAQr4uZfpLR-7#^7v1bR@z;*e9q&0_c0BF)jzhv2?{hRdf)0yq zq5Zo3pX@K#pSGVO+t$Hs?>X)!Tar7={)zhsZh2Eq z=IR4d*)qfPxe@l;xqw2V?3U_>21MHq29IQuu}%3+Iy|R9bithCeO3X&ej7Qu0cMf2 zH$oYSY{3b6@&H>p72F6;lhw9Eu?9n%d713%2e;G8`ILc_^Tu8FlZ<(4=MGp3ras0T zRmuT5c{8k^x_&dVD0Q8)7;2anwu9rp;D5@e*~4rHaqfiuQ^$6~-vK?2KQRDC z(z>7ZkkkMyA^Rqw{A3@LPklT9CYFqzq$lN zN90Np9ES>W^k%ou&U~n5@>bbTuAhMrS!c1jb?_Fsf}DR6;jOERN_6m6*+=OEv+P)S zG&#gM1|9jaT4XQfts8Xfd7I@j^2}+};m+>=mgM7U$n%}^?8A+$`w7A?>AHNsdO6&9l~&m@30r?>7~Qalpkw_bgN<}#_?+`PcAKkQtfbRxwJ=#j2x;| z7cp(pZY6y4EX$jqTyw%Q2``26vz!xnZ95bdf}l~t>!E(?yw=xQ*O5Z@Y1CZCL*vatt_XvEuz7`yu-Z+n2TrwtH>sZ57rl)*o5-SQlBow7hA# z-?G(GZN6$gV;(a%nZfji;h@PX{E6j+e>MKlP-R?bT+6l@E*pKui^jiVD_MsSVAmO3 zZs8;04dH2FQrIV~7j6*D{2$3ZMuo3LWC}U!ALlWSdSe9J=XNN~2za95j zaLH~0#?Gqei6r_BIFM<2$Y(LtG8PIZa18tvP-4JZ)yQUA zA1X0=KvMo7MGfFF-ZbXp8z6_kdM-^(9)mjs5?G9FP|#ddL`ILp`98}Mz%$v+X)BiI)WjbhTGdbXOVFLd@Wf(JTHpQlXe*!*dd4rAN z$wwJzCAHs%k3xpIj1l*cN3np^Wf*-lJf-T`uOYM5?~+0z)T9b^g5u_Q5CR|_!Y7* zw<%5T$IdeH>M0x~_hQAR&r&=qU|V_U3m8d~JlG(&6cva^s7x@0`O&F9lgotU0acR*#KYApCm ztxmVgU9@Tr0)?N)p;xSea9aK^>&9m{iv3jTjb_^Me~Z& ziqrhZ3cbj_$8@d4GTKU9UI`VNCarQKh2A#=<$4>IKMt*Vbt3XoQui1ZlP`y$Oqa!5 zwr5MdUi#&mz)F>S{$jvQ1tL=ei8Yd>R)iVN$>g6lH_gUpoe$1oEt%1tVxRfnnW zXQ1Ats`15X&0VDK2U@e#E^neLskOsV@K^6EutsJ7{wswB^n+Il;T*aEEh^2s4?{%# ze(D0Wsoy()s7=pOxrcTyEistZy_9{B{`1@eA=uV4k zUjyw@Z|!SPl|O@A&jq>I5{)Bg$g*6Y(R5zMpHAhY7ri@FS<#X}Rc6ZxkFI zd9$!9JEHr39>4RMrbFICcWB>y$5yEuw?p1d;iul625*yNbdkL97t<5S+i&UaOfD95 zxbdR4C|l(yDY^*NC;!pr(yhrZd8bk|;4REeqa$YjG*rKax?1e=>l9oe-$Fg!e;<@< z^UxvROw|_u!=X24g}j4O2Y=_#&rd|&PAl7$d4aoJtc*>QC91B**=Etn=)Mjyx%c#ZcyH3?U~y0e<9*l*UPC-pjQ39_z9?Q z0LZmZz~iH*vc(fi=?!IaY_M=W9r_e1swjbX0v}&Yf7_tl*pvQG3#Zp>&V%~QitIaI zfWQ4IK5C<~0uyt|rBAQ|7p~77zb>4YUq4^?w!c_VcfpIWP&MN;(rcR4eDz#kyS^u< zbo}REEXe)f#lqoq(`VpUZ-yrDqD+0=roAs9O)r5z|2nH=qLSW>48 z9Lr-v44Ub#3A_|TpE(q8L=#8qKZh!Hy0(4}zU|bCiV3^}`?F^{8e7=}-hug13-z5M zXqRAR6Zt0++WQ}ki@ftWxEtsIr4xAZ1O@P12~bG&xRzx&Z})f13;a&7r+4NyLT z=PAncXfK!slNvH8A0bC@!J0J)+5QED@^$S78Bb1brgiOC_c}1^YqzoF`7dBWJ~%2T z@Md4R&q41huTfX0V#-q_m{M&CO)R6Y8IYiTJe9)tfEyE7u=F&(3B37No@FRggfF2| z)3E*ty#Ak+$7)Zg0)-(M#yNp+v6R9IXVr1ZJ=e4d@k}&Kk8>^2luzL6fUm@_hV)I~ z3jyUVpZ)+@!=|&4&a&w&m(KF(tRbBh(ph6VYf5L$>8vH4wWhPSbk?5EI?`D&opq+O zMd@sDI_pYjOVU|)I$N5~deYglbk>{BmZ!76bhaX$^{2Cy>1-gK4W_f9bhav;txjiW Pq_Z{Y?94~9v(Ehw1nM(3 delta 11720 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 diff --git a/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs b/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs index c2f3bf8..0578886 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs @@ -862,10 +862,20 @@ namespace MTC_Adapter bool needSave = false; // recupero i dati di manutenzione dall'area di memoria IN BLOCCO int memIndex = 14000; - byte[] tabDatiMtz = new byte[4 * maintData.Length]; + byte[] tabDatiMtzByte = new byte[4 * maintData.Length]; + uint[] tabDatiMtz = new uint[maintData.Length]; inizio = DateTime.Now; - 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); + FanucMemRW(R, FANUC.MemType.R, memIndex, ref tabDatiMtzByte); + if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-DatiMtz", tabDatiMtzByte.Length), DateTime.Now.Subtract(inizio).Ticks); + // copio byte --> word! + Buffer.BlockCopy(tabDatiMtzByte, 0, tabDatiMtz, 0, tabDatiMtzByte.Length); + // decodifico aree memoria secondo tab configurazione + processMaintData(tabDatiMtz, maintData); + // verifica se debba salvare e mostrare dati + checkSavePersDataLayer(); + + // vecchia gestione con shift & co, ora gestito come OSAI con metodo da AdapterGeneric... +#if false // uno ad uno vado a inserirli nella mappa dei dati dell'adapter... int shift = 4; // 32bit int numero = 0; @@ -879,11 +889,11 @@ namespace MTC_Adapter if (maintData[i].varName == "ACC_TIME") { - istOreMaccOn = BitConverter.ToUInt32(tabDatiMtz, shift * i); + istOreMaccOn = BitConverter.ToUInt32(tabDatiMtzByte, shift * i); } else if (maintData[i].varName == "ACC_TIME_WORK") { - istOreMaccLav = BitConverter.ToUInt32(tabDatiMtz, shift * i); + istOreMaccLav = BitConverter.ToUInt32(tabDatiMtzByte, shift * i); } else if (maintData[i].varName.StartsWith("Path_")) { @@ -898,7 +908,7 @@ namespace MTC_Adapter } if (numero > 0) { - vettPath[numero - 1].mPathPartCount.Value = BitConverter.ToUInt32(tabDatiMtz, shift * i); + vettPath[numero - 1].mPathPartCount.Value = BitConverter.ToUInt32(tabDatiMtzByte, shift * i); } } } @@ -914,7 +924,7 @@ namespace MTC_Adapter { } if (numero > 0) { - istDistMovAssi[numero - 1] = BitConverter.ToUInt32(tabDatiMtz, shift * i); + istDistMovAssi[numero - 1] = BitConverter.ToUInt32(tabDatiMtzByte, shift * i); } } else if (maintData[i].varName.EndsWith("_Invers")) @@ -930,7 +940,7 @@ namespace MTC_Adapter // 2016.07.06 debug di valori che potrebbero essere nulli... try { - valRead = BitConverter.ToUInt32(tabDatiMtz, shift * i); + valRead = BitConverter.ToUInt32(tabDatiMtzByte, shift * i); } catch (Exception exc) { @@ -953,7 +963,7 @@ namespace MTC_Adapter // 2016.07.06 debug di valori che potrebbero essere nulli... try { - valRead = BitConverter.ToUInt32(tabDatiMtz, shift * i); + valRead = BitConverter.ToUInt32(tabDatiMtzByte, shift * i); } catch (Exception exc) { @@ -976,7 +986,7 @@ namespace MTC_Adapter { } if (numero > 0) { - istGiriElettrom[numero - 1] = BitConverter.ToUInt32(tabDatiMtz, shift * i); + istGiriElettrom[numero - 1] = BitConverter.ToUInt32(tabDatiMtzByte, shift * i); } } else if (maintData[i].varName.EndsWith("_NumCambiUT")) @@ -989,7 +999,7 @@ namespace MTC_Adapter { } if (numero > 0) { - istNumCambiUt[numero - 1] = BitConverter.ToUInt32(tabDatiMtz, shift * i); + istNumCambiUt[numero - 1] = BitConverter.ToUInt32(tabDatiMtzByte, shift * i); } } } @@ -1005,7 +1015,7 @@ namespace MTC_Adapter { } if (numero > 0) { - istVacPumpWrkTime[numero - 1] = BitConverter.ToUInt32(tabDatiMtz, shift * i); + istVacPumpWrkTime[numero - 1] = BitConverter.ToUInt32(tabDatiMtzByte, shift * i); } } } @@ -1021,7 +1031,7 @@ namespace MTC_Adapter { } if (numero > 0) { - istVacActCount[numero - 1] = BitConverter.ToUInt32(tabDatiMtz, shift * i); + istVacActCount[numero - 1] = BitConverter.ToUInt32(tabDatiMtzByte, shift * i); } } } @@ -1037,7 +1047,7 @@ namespace MTC_Adapter { } if (numero > 0) { - istLubroCount[numero - 1] = BitConverter.ToUInt32(tabDatiMtz, shift * i); + istLubroCount[numero - 1] = BitConverter.ToUInt32(tabDatiMtzByte, shift * i); } } } @@ -1063,8 +1073,8 @@ namespace MTC_Adapter // salvo se necessario! if (needSave) parentForm.persistData(); // ------------------------------------------- - } - + } +#endif } /// diff --git a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs index 11d7786..c587c51 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs @@ -1954,6 +1954,214 @@ namespace MTC_Adapter { // da gestire su ogni adapter... legge tutto array STROBE!!! } + /// + /// Processa la tabella di memoria dei dati di manutenzione + /// + /// + public void processMaintData(uint[] tabDatiMtz, otherData[] maintData) + { + // uno ad uno vado a inserirli nella mappa dei dati dell'adapter... + int numero = 0; + uint valRead = 0; + for (int i = 0; i < maintData.Length; i++) + { + numero = 0; + valRead = 0; + + if (maintData[i].varName == "ACC_TIME") + { + istOreMaccOn = tabDatiMtz[i]; + } + else if (maintData[i].varName == "ACC_TIME_WORK") + { + istOreMaccLav = tabDatiMtz[i]; + } + else if (maintData[i].varName.StartsWith("Path_")) + { + if (maintData[i].varName.EndsWith("_PZ_TOT")) + { + try + { + numero = Convert.ToInt32(maintData[i].varName.Replace("Path_", "").Replace("_PZ_TOT", "")); + } + catch + { + } + if (numero > 0) + { + vettPath[numero - 1].mPathPartCount.Value = tabDatiMtz[i]; + } + } + } + else if (maintData[i].varName.StartsWith("Axis_")) + { + if (maintData[i].varName.EndsWith("_DistDone")) + { + try + { + numero = Convert.ToInt32(maintData[i].varName.Replace("Axis_", "").Replace("_DistDone", "")); + } + catch + { } + if (numero > 0) + { + istDistMovAssi[numero - 1] = tabDatiMtz[i]; + } + } + else if (maintData[i].varName.EndsWith("_Invers")) + { + try + { + numero = Convert.ToInt32(maintData[i].varName.Replace("Axis_", "").Replace("_Invers", "")); + } + catch + { } + if (numero > 0) + { + // 2016.07.06 debug di valori che potrebbero essere nulli... + try + { + valRead = tabDatiMtz[i]; + } + catch (Exception exc) + { + valRead = 0; + lg.Error(string.Format("Errore in recupero num inversioni:{0}parametro: {1}{0}i: {2}{0}Exc: {3}", Environment.NewLine, maintData[i].varName, i, exc)); + } + istNumInvAssi[numero - 1] = valRead; + } + } + else if (maintData[i].varName.EndsWith("_AccTime")) + { + try + { + numero = Convert.ToInt32(maintData[i].varName.Replace("Axis_", "").Replace("_AccTime", "")); + } + catch + { } + if (numero > 0) + { + // 2016.07.06 debug di valori che potrebbero essere nulli... + try + { + valRead = tabDatiMtz[i]; + } + catch (Exception exc) + { + valRead = 0; + lg.Error(string.Format("Errore in recupero num inversioni:{0}parametro: {1}{0}i: {2}{0}Exc: {3}", Environment.NewLine, maintData[i].varName, i, exc)); + } + istAccTimeAssi[numero - 1] = valRead; + } + } + } + else if (maintData[i].varName.StartsWith("UnOp_")) + { + if (maintData[i].varName.EndsWith("_AccTime")) + { + try + { + numero = Convert.ToInt32(maintData[i].varName.Replace("UnOp_", "").Replace("_AccTime", "")); + } + catch + { } + if (numero > 0) + { + istGiriElettrom[numero - 1] = tabDatiMtz[i]; + } + } + else if (maintData[i].varName.EndsWith("_NumCambiUT")) + { + try + { + numero = Convert.ToInt32(maintData[i].varName.Replace("UnOp_", "").Replace("_NumCambiUT", "")); + } + catch + { } + if (numero > 0) + { + istNumCambiUt[numero - 1] = tabDatiMtz[i]; + } + } + } + else if (maintData[i].varName.StartsWith("VacPump_")) + { + if (maintData[i].varName.EndsWith("_WrkTime")) + { + try + { + numero = Convert.ToInt32(maintData[i].varName.Replace("VacPump_", "").Replace("_WrkTime", "")); + } + catch + { } + if (numero > 0) + { + istVacPumpWrkTime[numero - 1] = tabDatiMtz[i]; + } + } + } + else if (maintData[i].varName.StartsWith("VacAct_")) + { + if (maintData[i].varName.EndsWith("_Count")) + { + try + { + numero = Convert.ToInt32(maintData[i].varName.Replace("VacAct_", "").Replace("_Count", "")); + } + catch + { } + if (numero > 0) + { + istVacActCount[numero - 1] = tabDatiMtz[i]; + } + } + } + else if (maintData[i].varName.StartsWith("Lubro_")) + { + if (maintData[i].varName.EndsWith("_Num")) + { + try + { + numero = Convert.ToInt32(maintData[i].varName.Replace("Lubro_", "").Replace("_Num", "")); + } + catch + { } + if (numero > 0) + { + istLubroCount[numero - 1] = tabDatiMtz[i]; + } + } + } + } + } + /// + /// processa dataLayer e se necessario salva/mostra + /// + public void checkSavePersDataLayer() + { + if (persistenceLayer != null) + { + bool needSave = false; + // verifica se si debba aggiornare XML (e salva in adapter dati vari) + needSave = procOreMaccOn(needSave); + needSave = procOreMaccLav(needSave); + needSave = procProgrName(needSave); + needSave = procPartId(needSave); + needSave = procPzProd(needSave); + needSave = procGiriTotUnOp(needSave); + needSave = procNumCU(needSave); + needSave = procMovTotAssi(needSave); + needSave = procAccTimeAssi(needSave); + needSave = procNumInvAssi(needSave); + needSave = procVacPump(needSave); + needSave = procVacAct(needSave); + needSave = procLubro(needSave); + + // salvo se necessario! + if (needSave) parentForm.persistData(); + // ------------------------------------------- + } + } #endregion diff --git a/MTC_Adapter/MTC_Adapter/AdapterOsai.cs b/MTC_Adapter/MTC_Adapter/AdapterOsai.cs index 197d70c..76d23d5 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterOsai.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterOsai.cs @@ -1108,210 +1108,19 @@ namespace MTC_Adapter /// private void getMtzDataFromPlc() { - bool needSave = false; // recupero i dati di manutenzione dall'area di memoria IN BLOCCO int memIndex = 19166; uint[] tabDatiMtz = new uint[maintData.Length]; inizio = DateTime.Now; OsaiMemRW_DWord(R, OSAI.MemTypeWord.MW_CODE, memIndex, ref tabDatiMtz); if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-DatiMtz", tabDatiMtz.Length * 4), DateTime.Now.Subtract(inizio).Ticks); - // uno ad uno vado a inserirli nella mappa dei dati dell'adapter... - int numero = 0; - uint valRead = 0; - for (int i = 0; i < maintData.Length; i++) - { - numero = 0; - valRead = 0; - - if (maintData[i].varName == "ACC_TIME") - { - istOreMaccOn = tabDatiMtz[i]; - } - else if (maintData[i].varName == "ACC_TIME_WORK") - { - istOreMaccLav = tabDatiMtz[i]; - } - else if (maintData[i].varName.StartsWith("Path_")) - { - if (maintData[i].varName.EndsWith("_PZ_TOT")) - { - try - { - numero = Convert.ToInt32(maintData[i].varName.Replace("Path_", "").Replace("_PZ_TOT", "")); - } - catch - { - } - if (numero > 0) - { - vettPath[numero - 1].mPathPartCount.Value = tabDatiMtz[i]; - } - } - } - else if (maintData[i].varName.StartsWith("Axis_")) - { - if (maintData[i].varName.EndsWith("_DistDone")) - { - try - { - numero = Convert.ToInt32(maintData[i].varName.Replace("Axis_", "").Replace("_DistDone", "")); - } - catch - { } - if (numero > 0) - { - istDistMovAssi[numero - 1] = tabDatiMtz[i]; - } - } - else if (maintData[i].varName.EndsWith("_Invers")) - { - try - { - numero = Convert.ToInt32(maintData[i].varName.Replace("Axis_", "").Replace("_Invers", "")); - } - catch - { } - if (numero > 0) - { - // 2016.07.06 debug di valori che potrebbero essere nulli... - try - { - valRead = tabDatiMtz[i]; - } - catch (Exception exc) - { - valRead = 0; - lg.Error(string.Format("Errore in recupero num inversioni:{0}parametro: {1}{0}i: {2}{0}Exc: {3}", Environment.NewLine, maintData[i].varName, i, exc)); - } - istNumInvAssi[numero - 1] = valRead; - } - } - else if (maintData[i].varName.EndsWith("_AccTime")) - { - try - { - numero = Convert.ToInt32(maintData[i].varName.Replace("Axis_", "").Replace("_AccTime", "")); - } - catch - { } - if (numero > 0) - { - // 2016.07.06 debug di valori che potrebbero essere nulli... - try - { - valRead = tabDatiMtz[i]; - } - catch (Exception exc) - { - valRead = 0; - lg.Error(string.Format("Errore in recupero num inversioni:{0}parametro: {1}{0}i: {2}{0}Exc: {3}", Environment.NewLine, maintData[i].varName, i, exc)); - } - istAccTimeAssi[numero - 1] = valRead; - } - } - } - else if (maintData[i].varName.StartsWith("UnOp_")) - { - if (maintData[i].varName.EndsWith("_AccTime")) - { - try - { - numero = Convert.ToInt32(maintData[i].varName.Replace("UnOp_", "").Replace("_AccTime", "")); - } - catch - { } - if (numero > 0) - { - istGiriElettrom[numero - 1] = tabDatiMtz[i]; - } - } - else if (maintData[i].varName.EndsWith("_NumCambiUT")) - { - try - { - numero = Convert.ToInt32(maintData[i].varName.Replace("UnOp_", "").Replace("_NumCambiUT", "")); - } - catch - { } - if (numero > 0) - { - istNumCambiUt[numero - 1] = tabDatiMtz[i]; - } - } - } - else if (maintData[i].varName.StartsWith("VacPump_")) - { - if (maintData[i].varName.EndsWith("_WrkTime")) - { - try - { - numero = Convert.ToInt32(maintData[i].varName.Replace("VacPump_", "").Replace("_WrkTime", "")); - } - catch - { } - if (numero > 0) - { - istVacPumpWrkTime[numero - 1] = tabDatiMtz[i]; - } - } - } - else if (maintData[i].varName.StartsWith("VacAct_")) - { - if (maintData[i].varName.EndsWith("_Count")) - { - try - { - numero = Convert.ToInt32(maintData[i].varName.Replace("VacAct_", "").Replace("_Count", "")); - } - catch - { } - if (numero > 0) - { - istVacActCount[numero - 1] = tabDatiMtz[i]; - } - } - } - else if (maintData[i].varName.StartsWith("Lubro_")) - { - if (maintData[i].varName.EndsWith("_Num")) - { - try - { - numero = Convert.ToInt32(maintData[i].varName.Replace("Lubro_", "").Replace("_Num", "")); - } - catch - { } - if (numero > 0) - { - istLubroCount[numero - 1] = tabDatiMtz[i]; - } - } - } - } - - if (persistenceLayer != null) - { - // verifica se si debba aggiornare XML (e salva in adapter dati vari) - needSave = procOreMaccOn(needSave); - needSave = procOreMaccLav(needSave); - needSave = procProgrName(needSave); - needSave = procPartId(needSave); - needSave = procPzProd(needSave); - needSave = procGiriTotUnOp(needSave); - needSave = procNumCU(needSave); - needSave = procMovTotAssi(needSave); - needSave = procAccTimeAssi(needSave); - needSave = procNumInvAssi(needSave); - needSave = procVacPump(needSave); - needSave = procVacAct(needSave); - needSave = procLubro(needSave); - - // salvo se necessario! - if (needSave) parentForm.persistData(); - // ------------------------------------------- - } - + // decodifico aree memoria secondo tab configurazione + processMaintData(tabDatiMtz, maintData); + // verifica se debba salvare e mostrare dati + checkSavePersDataLayer(); } + + /// /// Gestione lettura dati status da PLC ///