diff --git a/MP-TAB3/Components/CurrOdlDetail.razor b/MP-TAB3/Components/CurrOdlDetail.razor
index 366988e0..a9195b0b 100644
--- a/MP-TAB3/Components/CurrOdlDetail.razor
+++ b/MP-TAB3/Components/CurrOdlDetail.razor
@@ -168,8 +168,14 @@
}
- @if (!showPOdlData)
+ @if (CurrOdl != null && !showPOdlData)
{
+
+ Inizio:
+
+
+ @($"{CurrOdl.DataInizio:ddd yyyy.MM.dd HH:mm:ss}")
+
}
else
{
diff --git a/MP-TAB3/Components/OdlMan.razor.cs b/MP-TAB3/Components/OdlMan.razor.cs
index a3c1352d..ecf8fd17 100644
--- a/MP-TAB3/Components/OdlMan.razor.cs
+++ b/MP-TAB3/Components/OdlMan.razor.cs
@@ -328,6 +328,17 @@ namespace MP_TAB3.Components
await CheckAttr();
await advStep(currStep++);
await FlushMpIoOdlCache();
+ // notifica...
+ if (isMulti)
+ {
+ await E_MachSel.InvokeAsync(idxMaccAltraTav);
+ await Task.Delay(100);
+ }
+ else
+ {
+ TabDServ.NotifyDataInvalidated(IdxMaccSel);
+ }
+ await E_MachSel.InvokeAsync(IdxMaccSel);
isProcessing = false;
await InvokeAsync(StateHasChanged);
}
@@ -369,6 +380,17 @@ namespace MP_TAB3.Components
await CheckAttr();
await advStep(currStep++);
await FlushMpIoOdlCache();
+ // notifica...
+ if (isMulti)
+ {
+ await E_MachSel.InvokeAsync(idxMaccAltraTav);
+ await Task.Delay(100);
+ }
+ else
+ {
+ TabDServ.NotifyDataInvalidated(IdxMaccSel);
+ }
+ await E_MachSel.InvokeAsync(IdxMaccSel);
// chiudo update...
isProcessing = false;
await InvokeAsync(StateHasChanged);
@@ -410,6 +432,18 @@ namespace MP_TAB3.Components
await RefreshData();
await CheckAttr();
await advStep(currStep++);
+ await FlushMpIoOdlCache();
+ // notifica...
+ if (isMulti)
+ {
+ await E_MachSel.InvokeAsync(idxMaccAltraTav);
+ await Task.Delay(100);
+ }
+ else
+ {
+ TabDServ.NotifyDataInvalidated(IdxMaccSel);
+ }
+ await E_MachSel.InvokeAsync(IdxMaccSel);
// chiudo update...
isProcessing = false;
await InvokeAsync(StateHasChanged);
@@ -523,6 +557,17 @@ namespace MP_TAB3.Components
await CheckAttr();
await advStep(currStep++);
await FlushMpIoOdlCache();
+ // notifica...
+ if (isMulti)
+ {
+ await E_MachSel.InvokeAsync(idxMaccAltraTav);
+ await Task.Delay(100);
+ }
+ else
+ {
+ TabDServ.NotifyDataInvalidated(IdxMaccSel);
+ }
+ await E_MachSel.InvokeAsync(IdxMaccSel);
// chiudo update...
isProcessing = false;
await InvokeAsync(StateHasChanged);
@@ -546,7 +591,7 @@ namespace MP_TAB3.Components
***************************************************/
// preparo gestione progress display
- MaxVal = 11;
+ MaxVal = 10;
int currStep = 0;
// elimino dati status...
isProcessing = true;
@@ -630,47 +675,10 @@ namespace MP_TAB3.Components
sb.AppendLine(String.Format(evText, idxODL_curr));
await processaEvento(IdxMaccSel, idxEvento, sb.ToString(), idxODL_curr);
await advStep(currStep++);
- // indico INIZIO SETUP su REDIS come EXE della macchina...
- string ts = string.Format("{0:yyMMdd}T{0:HHmmss.fff}Z", DateTime.Now);
- string outData = $"TS:{ts}|MATR:{MatrOpr}|ODL:{idxODL_curr}";
// aggiungo articolo, commessa, richiesta pezzi...
try
{
- var datiODL = await TabDServ.OdlCurrByMacc(IdxMaccSel, true);
- string setArtVal = $"{datiODL.CodArticolo}";
- string setPzCommVal = $"{datiODL.NumPezzi}";
- string setCommVal = $"ODL{datiODL.IdxOdl:00000000}";
- // FIXME TODO: scrivere come sotto? testare valvital x linea LASCO
- TabDServ.addTask4Machine(IdxMaccSel, taskType.startSetup, outData);
- TabDServ.addTask4Machine(IdxMaccSel, taskType.setArt, setArtVal);
- TabDServ.addTask4Machine(IdxMaccSel, taskType.setComm, setCommVal);
- TabDServ.addTask4Machine(IdxMaccSel, taskType.setPzComm, setPzCommVal);
- TabDServ.MachineParamUpdate(IdxMaccSel, "setArt", setArtVal);
- TabDServ.MachineParamUpdate(IdxMaccSel, "setComm", setCommVal);
- TabDServ.MachineParamUpdate(IdxMaccSel, "setPzComm", setPzCommVal);
- TabDServ.addTask4Machine(IdxMaccSel, taskType.setParameter, "ForceUpdate");
- await advStep(currStep++);
- // li aggiungo ANCHE sui PLC slave se ci sono...
- if (isMaster)
- {
- // calcolo gli slave...
- var slaveList = SMServ.ListM2S
- .Where(x => x.IdxMacchina.Equals(IdxMaccSel, StringComparison.InvariantCultureIgnoreCase))
- .ToList();
- foreach (var machine in slaveList)
- {
- outData = $"TS:{ts}|MATR:{MatrOpr}|Master Machine: {IdxMaccSel}";
- // invio chiusura attrezzaggio
- TabDServ.addTask4Machine(machine.IdxMacchinaSlave, taskType.startSetup, outData);
- TabDServ.addTask4Machine(machine.IdxMacchinaSlave, taskType.setArt, setArtVal);
- TabDServ.addTask4Machine(machine.IdxMacchinaSlave, taskType.setComm, setCommVal);
- TabDServ.addTask4Machine(machine.IdxMacchinaSlave, taskType.setPzComm, setPzCommVal);
- TabDServ.MachineParamUpdate(machine.IdxMacchinaSlave, "setArt", setArtVal);
- TabDServ.MachineParamUpdate(machine.IdxMacchinaSlave, "setComm", setCommVal);
- TabDServ.MachineParamUpdate(machine.IdxMacchinaSlave, "setPzComm", setPzCommVal);
- TabDServ.addTask4Machine(machine.IdxMacchinaSlave, taskType.setParameter, "ForceUpdate");
- }
- }
+ await DoSendTaskOdl(idxODL_curr);
await advStep(currStep++);
}
catch (Exception exc)
@@ -739,6 +747,17 @@ namespace MP_TAB3.Components
await CheckAttr();
inAttr = true;
tcRichAttr = tmpTCR;
+ // notifica...
+ if (isMulti)
+ {
+ await E_MachSel.InvokeAsync(idxMaccAltraTav);
+ await Task.Delay(100);
+ }
+ else
+ {
+ TabDServ.NotifyDataInvalidated(IdxMaccSel);
+ }
+ await E_MachSel.InvokeAsync(IdxMaccSel);
isProcessing = false;
await InvokeAsync(StateHasChanged);
}
@@ -797,7 +816,7 @@ namespace MP_TAB3.Components
}
// verifica conferma produzione
datiProdAct = await TabDServ.StatoProdMacchina(IdxMaccSel, DateTime.Now);
- checkConfProd();
+ await checkConfProd();
}
protected async Task ProdEnd()
@@ -929,6 +948,17 @@ namespace MP_TAB3.Components
await RefreshData();
await CheckAttr();
await advStep(currStep++);
+ // notifica...
+ if (isMulti)
+ {
+ await E_MachSel.InvokeAsync(idxMaccAltraTav);
+ await Task.Delay(100);
+ }
+ else
+ {
+ TabDServ.NotifyDataInvalidated(IdxMaccSel);
+ }
+ await E_MachSel.InvokeAsync(IdxMaccSel);
isProcessing = false;
await InvokeAsync(StateHasChanged);
}
@@ -1065,6 +1095,10 @@ namespace MP_TAB3.Components
}
}
+ ///
+ /// Esegue split ODL corrente
+ ///
+ ///
protected async Task SplitOdl()
{
if (!await JSRuntime.InvokeAsync
("confirm", $"Confermi richiesta riattrezzaggio ODL, con conseguente chiusura ODL corrente + split nuovo ODL con TC {tcRichAttr:N3}?"))
@@ -1075,7 +1109,7 @@ namespace MP_TAB3.Components
SDService.MachProdStRem(IdxMaccSel);
// preparo gestione progress display
- MaxVal = 9;
+ MaxVal = 10;
int currStep = 0;
await advStep(currStep);
@@ -1123,6 +1157,23 @@ namespace MP_TAB3.Components
await advStep(currStep++);
showSplitOdlRiattr = false;
await ReloadXDL(true);
+ // invio richiesta reset NUOVO ODL...
+ if (IdxOdl > 0)
+ {
+ await DoSendTaskOdl(IdxOdl);
+ }
+ await advStep(currStep++);
+ // notifica...
+ if (isMulti)
+ {
+ await E_MachSel.InvokeAsync(idxMaccAltraTav);
+ await Task.Delay(100);
+ }
+ else
+ {
+ TabDServ.NotifyDataInvalidated(IdxMaccSel);
+ }
+ await E_MachSel.InvokeAsync(IdxMaccSel);
// chiudo update...
isProcessing = false;
await InvokeAsync(StateHasChanged);
@@ -1480,13 +1531,20 @@ namespace MP_TAB3.Components
}
}
- private void checkConfProd()
+ private async Task checkConfProd()
{
// calcolo conferma prod...
needConfProd = RecMSE != null && datiProdAct != null;
if (datiProdAct != null)
{
- needConfProd = (datiProdAct.Pz2RecTot > 0 || datiProdAct.Pz2RecScarto != 0) && !isSlave;
+ needConfProd = (datiProdAct.Pz2RecTot > 0 || datiProdAct.Pz2RecScarto > 0 || datiProdAct.Pz2RecRilav > 0) && !isSlave;
+ // se รจ multi controllo anche altra tavola...
+ if (isMulti && !needConfProd)
+ {
+ // verifica conferma produzione
+ var datiProdAltra = await TabDServ.StatoProdMacchina(idxMaccAltraTav, DateTime.Now);
+ needConfProd = (datiProdAltra.Pz2RecTot > 0 || datiProdAltra.Pz2RecScarto > 0 || datiProdAltra.Pz2RecRilav > 0) && !isSlave;
+ }
if (needConfProd)
{
StateHasChanged();
@@ -1523,7 +1581,7 @@ namespace MP_TAB3.Components
// recupero pz da confermare
datiProdAct = await TabDServ.StatoProdMacchina(IdxMaccSel, adesso);
- checkConfProd();
+ await checkConfProd();
if (datiProdAct.Pz2RecTot > 0)
{
@@ -1578,6 +1636,57 @@ namespace MP_TAB3.Components
}
}
+ ///
+ /// Invio set informazioni x segnalare setupODL
+ ///
+ ///
+ ///
+ private async Task DoSendTaskOdl(int idxODL_curr)
+ {
+ // indico INIZIO SETUP su REDIS come EXE della macchina...
+ string ts = string.Format("{0:yyMMdd}T{0:HHmmss.fff}Z", DateTime.Now);
+ string outData = $"TS:{ts}|MATR:{MatrOpr}|ODL:{idxODL_curr}";
+ var datiODL = await TabDServ.OdlCurrByMacc(IdxMaccSel, true);
+ string setArtVal = $"{datiODL.CodArticolo}";
+ string setPzCommVal = $"{datiODL.NumPezzi}";
+ string setCommVal = $"ODL{datiODL.IdxOdl:00000000}";
+ // FIXME TODO: scrivere come sotto? testare valvital x linea LASCO
+ TabDServ.addTask4Machine(IdxMaccSel, taskType.startSetup, outData);
+ TabDServ.addTask4Machine(IdxMaccSel, taskType.setArt, setArtVal);
+ TabDServ.addTask4Machine(IdxMaccSel, taskType.setComm, setCommVal);
+ TabDServ.addTask4Machine(IdxMaccSel, taskType.setPzComm, setPzCommVal);
+ TabDServ.addTask4Machine(IdxMaccSel, taskType.forceResetPzCount, "0");
+ TabDServ.MachineParamUpdate(IdxMaccSel, "setArt", setArtVal);
+ TabDServ.MachineParamUpdate(IdxMaccSel, "setComm", setCommVal);
+ TabDServ.MachineParamUpdate(IdxMaccSel, "setPzComm", setPzCommVal);
+ TabDServ.MachineParamUpdate(IdxMaccSel, "forceResetPzCount", "0");
+ TabDServ.addTask4Machine(IdxMaccSel, taskType.setParameter, "ForceUpdate");
+ //await advStep(currStep++);
+ // li aggiungo ANCHE sui PLC slave se ci sono...
+ if (isMaster)
+ {
+ // calcolo gli slave...
+ var slaveList = SMServ.ListM2S
+ .Where(x => x.IdxMacchina.Equals(IdxMaccSel, StringComparison.InvariantCultureIgnoreCase))
+ .ToList();
+ foreach (var machine in slaveList)
+ {
+ outData = $"TS:{ts}|MATR:{MatrOpr}|Master Machine:{IdxMaccSel}";
+ // invio chiusura attrezzaggio
+ TabDServ.addTask4Machine(machine.IdxMacchinaSlave, taskType.startSetup, outData);
+ TabDServ.addTask4Machine(machine.IdxMacchinaSlave, taskType.setArt, setArtVal);
+ TabDServ.addTask4Machine(machine.IdxMacchinaSlave, taskType.setComm, setCommVal);
+ TabDServ.addTask4Machine(machine.IdxMacchinaSlave, taskType.setPzComm, setPzCommVal);
+ TabDServ.addTask4Machine(machine.IdxMacchinaSlave, taskType.forceResetPzCount, "0");
+ TabDServ.MachineParamUpdate(machine.IdxMacchinaSlave, "setArt", setArtVal);
+ TabDServ.MachineParamUpdate(machine.IdxMacchinaSlave, "setComm", setCommVal);
+ TabDServ.MachineParamUpdate(machine.IdxMacchinaSlave, "setPzComm", setPzCommVal);
+ TabDServ.MachineParamUpdate(machine.IdxMacchinaSlave, "forceResetPzCount", "0");
+ TabDServ.addTask4Machine(machine.IdxMacchinaSlave, taskType.setParameter, "ForceUpdate");
+ }
+ }
+ }
+
private void fixTcNotePzPallet(bool reloadFromOdl)
{
if (tcRichAttr == 0 || string.IsNullOrEmpty(noteAttr) || PzPallet == 0)
@@ -1683,7 +1792,7 @@ namespace MP_TAB3.Components
{
var rawData = await TabDServ.PezziProdMacchina(IdxMaccSel);
datiProdAct = await TabDServ.StatoProdMacchina(IdxMaccSel, DateTime.Now);
- checkConfProd();
+ await checkConfProd();
Log.Trace("OdlMan.ReloadData | check checkConfProd done");
}
}
diff --git a/MP-TAB3/Components/ProdConfirm.razor.cs b/MP-TAB3/Components/ProdConfirm.razor.cs
index 023c95e4..1032bf54 100644
--- a/MP-TAB3/Components/ProdConfirm.razor.cs
+++ b/MP-TAB3/Components/ProdConfirm.razor.cs
@@ -8,26 +8,6 @@ namespace MP_TAB3.Components
{
public partial class ProdConfirm
{
- #region Private Fields
-
- private static Logger Log = LogManager.GetCurrentClassLogger();
-
- private bool chkPzBuoniNeg = false;
-
- private bool confRett = false;
-
- private bool enableMagPrint = false;
-
- private bool enablePzProdLasciati = false;
-
- private bool isMulti = false;
-
- private string lblOut = "";
-
- private int modoConfProd = 0;
-
- #endregion Private Fields
-
#region Public Properties
///
@@ -95,7 +75,6 @@ namespace MP_TAB3.Components
protected StatoProdModel? datiProdAct { get; set; } = null;
protected DateTime dtFine { get; set; } = DateTime.Today.AddMonths(-1);
-
protected DateTime dtInizio { get; set; } = DateTime.Today.AddMonths(-2);
///
@@ -145,7 +124,6 @@ namespace MP_TAB3.Components
protected MessageService MsgServ { get; set; } = null!;
protected int numPz2Rec { get; set; } = 0;
-
protected int numPzBuoniConf { get; set; } = 0;
///
@@ -172,13 +150,10 @@ namespace MP_TAB3.Components
}
protected int numPzProdotti { get; set; } = 0;
-
protected int numPzProdotti2Rec { get; set; } = 0;
-
protected int numPzRilav2Rec { get; set; } = 0;
protected int numPzRilavConf { get; set; } = 0;
protected int numPzScaConf { get; set; } = 0;
-
protected int numPzScarto2Rec { get; set; } = 0;
///
@@ -226,31 +201,6 @@ namespace MP_TAB3.Components
#endregion Protected Properties
- #region Private Properties
-
- private bool confProdActive { get; set; } = false;
-
- private MappaStatoExpl? currRecMSE { get; set; } = null;
-
- private DateTime dtReqUpdate { get; set; } = DateTime.Now;
-
- private string IdxMaccSel { get; set; } = "";
-
- private bool isProcessing { get; set; } = false;
-
- private MappaStatoExpl? lastRecMSE { get; set; } = null;
-
- private int MatrOpr
- {
- get => MsgServ.MatrOpr;
- }
-
- private int numPzLasc { get; set; } = 0;
-
- private bool showConfirm { get; set; } = true;
-
- #endregion Private Properties
-
#region Protected Methods
///
@@ -296,21 +246,24 @@ namespace MP_TAB3.Components
{
numPzLasciati = 0;
}
- // verifico se la macchina sia configurata tra le MSFD...
- if (SMServ.DictMacchMulti.ContainsKey(RecMSE.IdxMacchina))
+ if (!confDone)
{
- isMulti = SMServ.DictMacchMulti[RecMSE.IdxMacchina] == 1;
- }
- IdxMaccSel = RecMSE.IdxMacchina;
- if (isMulti)
- {
- var idxMSel = MsgServ.UserPrefGet(IdxMaccSel);
- if (!string.IsNullOrEmpty(idxMSel))
+ // verifico se la macchina sia configurata tra le MSFD...
+ if (SMServ.DictMacchMulti.ContainsKey(RecMSE.IdxMacchina))
{
- IdxMaccSel = idxMSel;
+ isMulti = SMServ.DictMacchMulti[RecMSE.IdxMacchina] == 1;
+ }
+ IdxMaccSel = RecMSE.IdxMacchina;
+ if (isMulti)
+ {
+ var idxMSel = MsgServ.UserPrefGet(IdxMaccSel);
+ if (!string.IsNullOrEmpty(idxMSel))
+ {
+ IdxMaccSel = idxMSel;
+ }
}
}
- //salvo lastRec...
+ // salvo lastRec...
lastRecMSE = RecMSE;
dtReqUpdate = DateTime.Now.AddMilliseconds(100);
await DoUpdate();
@@ -382,6 +335,53 @@ namespace MP_TAB3.Components
#endregion Protected Methods
+ #region Private Fields
+
+ private static Logger Log = LogManager.GetCurrentClassLogger();
+
+ private bool chkPzBuoniNeg = false;
+
+ private bool confRett = false;
+
+ private bool enableMagPrint = false;
+
+ private bool enablePzProdLasciati = false;
+
+ private bool confDone = false;
+ private bool isMulti = false;
+ private bool isSlave = false;
+
+ private string lblOut = "";
+
+ private int modoConfProd = 0;
+
+ #endregion Private Fields
+
+ #region Private Properties
+
+ private bool confProdActive { get; set; } = false;
+
+ private MappaStatoExpl? currRecMSE { get; set; } = null;
+
+ private DateTime dtReqUpdate { get; set; } = DateTime.Now;
+
+ private string IdxMaccSel { get; set; } = "";
+
+ private bool isProcessing { get; set; } = false;
+
+ private MappaStatoExpl? lastRecMSE { get; set; } = null;
+
+ private int MatrOpr
+ {
+ get => MsgServ.MatrOpr;
+ }
+
+ private int numPzLasc { get; set; } = 0;
+
+ private bool showConfirm { get; set; } = true;
+
+ #endregion Private Properties
+
#region Private Methods
///
diff --git a/MP-TAB3/MP-TAB3.csproj b/MP-TAB3/MP-TAB3.csproj
index 03ecf080..659e5d51 100644
--- a/MP-TAB3/MP-TAB3.csproj
+++ b/MP-TAB3/MP-TAB3.csproj
@@ -3,7 +3,7 @@
net6.0
enable
- 6.16.2503.1314
+ 6.16.2503.1316
enable
MP_TAB3
diff --git a/MP-TAB3/Resources/ChangeLog.html b/MP-TAB3/Resources/ChangeLog.html
index b7b138c4..73d7d868 100644
--- a/MP-TAB3/Resources/ChangeLog.html
+++ b/MP-TAB3/Resources/ChangeLog.html
@@ -1,6 +1,6 @@
Modulo MAPOSPEC
- Versione: 6.16.2503.1314
+ Versione: 6.16.2503.1316
Note di rilascio:
-
diff --git a/MP-TAB3/Resources/VersNum.txt b/MP-TAB3/Resources/VersNum.txt
index 5ef67702..23bb6c64 100644
--- a/MP-TAB3/Resources/VersNum.txt
+++ b/MP-TAB3/Resources/VersNum.txt
@@ -1 +1 @@
-6.16.2503.1314
+6.16.2503.1316
diff --git a/MP-TAB3/Resources/manifest.xml b/MP-TAB3/Resources/manifest.xml
index 3549ff7b..f4b3f46e 100644
--- a/MP-TAB3/Resources/manifest.xml
+++ b/MP-TAB3/Resources/manifest.xml
@@ -1,6 +1,6 @@
-
- 6.16.2503.1314
+ 6.16.2503.1316
https://nexus.steamware.net/repository/SWS/MP-TAB3/stable/LAST/MP-TAB3.zip
https://nexus.steamware.net/repository/SWS/MP-TAB3/stable/LAST/ChangeLog.html
false