From 78e840fdb2b3cf8378979175206dac2b0b36ab93 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Mon, 4 Apr 2016 17:16:09 +0200 Subject: [PATCH] completata gestione flag x contapezzi --- MTC_Sim/.vs/MTC_Sim/v14/.suo | Bin 118784 -> 118784 bytes MTC_Sim/MTC_Sim/AdapterDemo.cs | 26 ++++++++-- MTC_Sim/MTC_Sim/AdapterGeneric.cs | 54 ++++++++++++++++++++- MTC_Sim/MTC_Sim/CMS_MachineSim.Designer.cs | 10 ++-- MTC_Sim/MTC_Sim/CMS_MachineSim.cs | 53 ++++++++++++-------- MTC_Sim/MTC_Sim/utils.cs | 8 ++- 6 files changed, 119 insertions(+), 32 deletions(-) diff --git a/MTC_Sim/.vs/MTC_Sim/v14/.suo b/MTC_Sim/.vs/MTC_Sim/v14/.suo index 98c81f7e4b191acc4e6cb0b3b95b546bbc7749c4..6780cbca4104558ead1c399975d19f8fb0bd76db 100644 GIT binary patch delta 421 zcmZozz}~QceM1ft>w{mC%Ud=VGO;r;SsA+7X6^X5V}hzR@t5=Q>bl{G(N z7+WS6-8{&6U~=8fjhv+nB@CGiISj>~*`#e)`@Sj7HPhx*6|nenX7=N+|n!tn^)DFl4*=E~$r!f9y7JLX7H$ETliRi&1WRp(-2f8nkfPWl;Y9K)DKp~JVh~ytR N{QlX_JBRVJF#s}XZL9zQ delta 481 zcmZozz}~QceM1ft>jA<0sx_Mnnb;W_{We!Je+G&u&q%1=T*w9yVgFykD6+Y-=0^-; z$K;}$2N{n{uDiLBw}7FDA)g@~NG3AmPJVYQX0zYzHv8!gnv7i2*GV&KFrJ(KPJwam z^c^~kM%%ARGm5hd@-i|&fz$y%AX{(yKPASWEYm+|GV*ZA0i}$A*afU_-uBfRj8V*D zuVFeEln<~2wSZJXRLtEDG})Y4ff=rXfuRh@76)P;Acl!gPjq8cnm*5fk$bz10i&rd zeot)oi)Y-#!6-7FQH=4y^d1SuI}m?3Ez4q*n{J@U7!C2zLovqHjErX>USyL3DuQ|3 xjPVvkbb&IX-S*uIj7Ci4c)SPhEtUh@fov5ZM)9~L%!43>C?4O=JBRVJF#vNSf;a#G diff --git a/MTC_Sim/MTC_Sim/AdapterDemo.cs b/MTC_Sim/MTC_Sim/AdapterDemo.cs index 4f9481f..31df5e3 100644 --- a/MTC_Sim/MTC_Sim/AdapterDemo.cs +++ b/MTC_Sim/MTC_Sim/AdapterDemo.cs @@ -27,9 +27,9 @@ namespace MTC_Sim mProgRowNum.Value = parentForm.datiProd.ProgrRow; mPartId.Value = parentForm.datiProd.PartId; - mPz_Tot.Value = parentForm.datiProd.pzTot; - mPz_Ok.Value = parentForm.datiProd.pzOk; - mPz_Ko.Value = parentForm.datiProd.pzKo; + //mPz_Tot.Value = parentForm.datiProd.pzTot; + //mPz_Ok.Value = parentForm.datiProd.pzOk; + //mPz_Ko.Value = parentForm.datiProd.pzKo; mOperator.Value = parentForm.datiProd.Operator; } @@ -98,5 +98,25 @@ namespace MTC_Sim mxLoad.Value = parentForm.datiProd.xLoad; mcLoad.Value = parentForm.datiProd.cLoad; } + /// + /// Recupero dati da form... + /// + public override int getNumPzKo + { + get + { + return parentForm.datiProd.pzKo; + } + } + /// + /// Recupero dati da form... + /// + public override int getNumPzOk + { + get + { + return parentForm.datiProd.pzOk; + } + } } } diff --git a/MTC_Sim/MTC_Sim/AdapterGeneric.cs b/MTC_Sim/MTC_Sim/AdapterGeneric.cs index 7005a0d..0152fe0 100644 --- a/MTC_Sim/MTC_Sim/AdapterGeneric.cs +++ b/MTC_Sim/MTC_Sim/AdapterGeneric.cs @@ -275,6 +275,8 @@ namespace MTC_Sim // fix codici M/S/T getCodMST(); + getProduzione(); + // fix dati x ulteriori (allarmi, modalità RUN/EXEC, ...) getCurrMode(); @@ -288,6 +290,12 @@ namespace MTC_Sim mAdapter.SendChanged(); } + private void getProduzione() + { + // SE presente recupero dati produzione + checkProd(); + } + /// /// recupero dati ASSI /// @@ -343,11 +351,55 @@ namespace MTC_Sim { // da gestire su ogni adapter... } - + #endregion #region area metodi comunicazione con PLC/CNC + + public void checkProd() + { + if (utils.IsSetAny(STROBE_PLC, Strobe.PZ_OK | Strobe.PZ_KO)) + { + // leggo i valori pezzi OK / KO e li salvo (insieme a tot...) + mPz_Ok.Value = getNumPzOk; + mPz_Ko.Value = getNumPzKo; + mPz_Tot.Value = getNumPzOk + getNumPzKo; + // alzo flag lettura... + if (utils.IsSetAll(STROBE_PLC, Strobe.PZ_OK)) STROBE_ADP = STROBE_ADP | Strobe.PZ_OK; + if (utils.IsSetAll(STROBE_PLC, Strobe.PZ_KO)) STROBE_ADP = STROBE_ADP | Strobe.PZ_KO; + + } + else + { + // resetto eventuali flag di lettura... + if (utils.IsSetAll(STROBE_ADP, Strobe.PZ_OK)) STROBE_ADP -= Strobe.PZ_OK; + if (utils.IsSetAll(STROBE_ADP, Strobe.PZ_KO)) STROBE_ADP -= Strobe.PZ_KO; + } + } + /// + /// recupera pezzi OK (fare override!) + /// + public virtual int getNumPzOk + { + get + { + int answ = 0; + return answ; + } + } + /// + /// recupera pezzi KO (fare override!) + /// + public virtual int getNumPzKo + { + get + { + int answ = 0; + return answ; + } + } + public void checkCodM() { if (utils.IsSetAll(STROBE_PLC, Strobe.M_CODE)) diff --git a/MTC_Sim/MTC_Sim/CMS_MachineSim.Designer.cs b/MTC_Sim/MTC_Sim/CMS_MachineSim.Designer.cs index 9da43c3..773931e 100644 --- a/MTC_Sim/MTC_Sim/CMS_MachineSim.Designer.cs +++ b/MTC_Sim/MTC_Sim/CMS_MachineSim.Designer.cs @@ -324,11 +324,13 @@ // this.functionalMode.FormattingEnabled = true; this.functionalMode.Items.AddRange(new object[] { - "PRODUCTION", + "MACCHINA_DISPONIBILE", + "MANUTENZIONE", + "PRODUZIONE", + "PULIZIA", + "REGOLAZIONI", "SETUP", - "TEARDOWN", - "MAINTENANCE", - "PROCESS_DEVELOPMENT"}); + "TEARDOWN"}); this.functionalMode.Location = new System.Drawing.Point(252, 71); this.functionalMode.Name = "functionalMode"; this.functionalMode.Size = new System.Drawing.Size(121, 21); diff --git a/MTC_Sim/MTC_Sim/CMS_MachineSim.cs b/MTC_Sim/MTC_Sim/CMS_MachineSim.cs index 0e1ffc8..760ff9d 100644 --- a/MTC_Sim/MTC_Sim/CMS_MachineSim.cs +++ b/MTC_Sim/MTC_Sim/CMS_MachineSim.cs @@ -179,9 +179,9 @@ namespace MTC_Sim answ.MessageText = messageText.Text; // pezzi - answ.pzTot = pzTot; + answ.pzOk = pzOk; answ.pzKo = pzKo; - answ.pzOk = pzTot - pzKo; + answ.pzTot = pzOk + pzKo; // load... answ.xLoad = xLoad.Value; @@ -260,24 +260,18 @@ namespace MTC_Sim private void pzKo_TextChanged(object sender, EventArgs e) { - // SE ho un valore diverso da zero invio... - if (pzKo > 0) - { - agObj.mPz_Ko.Value = pzKo; - agObj.mPz_Tot.Value = pzOk; - agObj.mPz_Ok.Value = pzOk - pzKo; - agObj.mAdapter.SendChanged(); - } + agObj.STROBE_PLC = agObj.STROBE_PLC | Strobe.PZ_KO; + txtPzTot.Text = pzTot.ToString(); } - protected int pzTot + protected int pzOk { get { int answ = 0; try { - answ = Convert.ToInt32(txtPzTot.Text.Trim()); + answ = Convert.ToInt32(txtPzOk.Text.Trim()); } catch { } @@ -285,7 +279,8 @@ namespace MTC_Sim } set { - txtPzTot.Text = value.ToString(); + txtPzOk.Text = value.ToString(); + txtPzTot.Text = pzTot.ToString(); } } protected int pzKo @@ -302,11 +297,11 @@ namespace MTC_Sim return answ; } } - protected int pzOk + protected int pzTot { get { - return pzTot - pzKo; + return pzOk + pzKo; } } @@ -346,13 +341,33 @@ namespace MTC_Sim if (agObj.codaS.Count > 0) agObj.STROBE_PLC = agObj.STROBE_PLC | Strobe.S_CODE; if (agObj.codaT.Count > 0) agObj.STROBE_PLC = agObj.STROBE_PLC | Strobe.T_CODE; - // aggiungo 1 pz al totale nel 20% dei casi (-->TC circa 5 x tick)... - if (rnd.Next(1, 100) > 80) + // aggiungo 1 pz al totale nel 33% dei casi (-->TC circa 3 x tick)... + if (rnd.Next(0, 100) > 67) { - pzTot++; + pzOk++; + agObj.STROBE_PLC = agObj.STROBE_PLC | Strobe.PZ_OK; } // controllo se ci sia il flag di lettura di un evento M/S/T nel qual caso lo abbasso... - if (agObj.STROBE_ADP > 0) agObj.STROBE_PLC -= agObj.STROBE_ADP; + if (utils.IsSetAll(agObj.STROBE_ADP, Strobe.M_CODE)) + { + if (utils.IsSetAll(agObj.STROBE_PLC, Strobe.M_CODE)) agObj.STROBE_PLC -= Strobe.M_CODE; + } + if (utils.IsSetAll(agObj.STROBE_ADP, Strobe.S_CODE)) + { + if (utils.IsSetAll(agObj.STROBE_PLC, Strobe.S_CODE)) agObj.STROBE_PLC -= Strobe.S_CODE; + } + if (utils.IsSetAll(agObj.STROBE_ADP, Strobe.T_CODE)) + { + if (utils.IsSetAll(agObj.STROBE_PLC, Strobe.T_CODE)) agObj.STROBE_PLC -= Strobe.T_CODE; + } + if (utils.IsSetAll(agObj.STROBE_ADP, Strobe.PZ_OK)) + { + if (utils.IsSetAll(agObj.STROBE_PLC, Strobe.PZ_OK)) agObj.STROBE_PLC -= Strobe.PZ_OK; + } + if (utils.IsSetAll(agObj.STROBE_ADP, Strobe.PZ_KO)) + { + if (utils.IsSetAll(agObj.STROBE_PLC, Strobe.PZ_KO)) agObj.STROBE_PLC -= Strobe.PZ_KO; + } // aggiorno visualizzazione strobe! STATUS_PLC_ADP.Text = utils.binaryForm((int)agObj.STROBE_PLC); diff --git a/MTC_Sim/MTC_Sim/utils.cs b/MTC_Sim/MTC_Sim/utils.cs index f2837c8..6d620af 100644 --- a/MTC_Sim/MTC_Sim/utils.cs +++ b/MTC_Sim/MTC_Sim/utils.cs @@ -130,9 +130,7 @@ namespace MTC_Sim public bool err_05; public bool err_06; } - - //public struct runningData - + /// /// Strobe: contiene il set di strobe di comunicazione /// @@ -145,8 +143,8 @@ namespace MTC_Sim M_CODE = 1 << 0, S_CODE = 1 << 1, T_CODE = 1 << 2, - SP04 = 1 << 3, - SP05 = 1 << 4, + PZ_OK = 1 << 3, + PZ_KO = 1 << 4, SP06 = 1 << 5, SP07 = 1 << 6, SP08 = 1 << 8,