completata gestione flag x contapezzi
This commit is contained in:
Binary file not shown.
@@ -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;
|
||||
}
|
||||
/// <summary>
|
||||
/// Recupero dati da form...
|
||||
/// </summary>
|
||||
public override int getNumPzKo
|
||||
{
|
||||
get
|
||||
{
|
||||
return parentForm.datiProd.pzKo;
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Recupero dati da form...
|
||||
/// </summary>
|
||||
public override int getNumPzOk
|
||||
{
|
||||
get
|
||||
{
|
||||
return parentForm.datiProd.pzOk;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// recupero dati ASSI
|
||||
/// </summary>
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// recupera pezzi OK (fare override!)
|
||||
/// </summary>
|
||||
public virtual int getNumPzOk
|
||||
{
|
||||
get
|
||||
{
|
||||
int answ = 0;
|
||||
return answ;
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// recupera pezzi KO (fare override!)
|
||||
/// </summary>
|
||||
public virtual int getNumPzKo
|
||||
{
|
||||
get
|
||||
{
|
||||
int answ = 0;
|
||||
return answ;
|
||||
}
|
||||
}
|
||||
|
||||
public void checkCodM()
|
||||
{
|
||||
if (utils.IsSetAll(STROBE_PLC, Strobe.M_CODE))
|
||||
|
||||
+6
-4
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -130,9 +130,7 @@ namespace MTC_Sim
|
||||
public bool err_05;
|
||||
public bool err_06;
|
||||
}
|
||||
|
||||
//public struct runningData
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 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,
|
||||
|
||||
Reference in New Issue
Block a user