From 08a33a3e7bd44edfe5684dc96e548d0ea89ec458 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Thu, 13 Mar 2025 16:02:06 +0100 Subject: [PATCH 1/3] TAB3: fix invio parametri come Donati --- MP-TAB3/Components/CurrOdlDetail.razor | 8 +- MP-TAB3/Components/OdlMan.razor.cs | 91 ++++++++++-------- MP-TAB3/Components/ProdConfirm.razor.cs | 122 ++++++++++++------------ MP-TAB3/MP-TAB3.csproj | 2 +- MP-TAB3/Resources/ChangeLog.html | 2 +- MP-TAB3/Resources/VersNum.txt | 2 +- MP-TAB3/Resources/manifest.xml | 2 +- 7 files changed, 123 insertions(+), 106 deletions(-) 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..c3a3ecac 100644 --- a/MP-TAB3/Components/OdlMan.razor.cs +++ b/MP-TAB3/Components/OdlMan.razor.cs @@ -546,7 +546,7 @@ namespace MP_TAB3.Components ***************************************************/ // preparo gestione progress display - MaxVal = 11; + MaxVal = 10; int currStep = 0; // elimino dati status... isProcessing = true; @@ -630,47 +630,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 sendTaskOdl(idxODL_curr); await advStep(currStep++); } catch (Exception exc) @@ -743,6 +706,48 @@ namespace MP_TAB3.Components await InvokeAsync(StateHasChanged); } + private async Task sendTaskOdl(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.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"); + } + } + } + protected override void OnInitialized() { //baseLang = SMServ.GetConf("baseLang"); @@ -1075,7 +1080,7 @@ namespace MP_TAB3.Components SDService.MachProdStRem(IdxMaccSel); // preparo gestione progress display - MaxVal = 9; + MaxVal = 10; int currStep = 0; await advStep(currStep); @@ -1123,6 +1128,12 @@ namespace MP_TAB3.Components await advStep(currStep++); showSplitOdlRiattr = false; await ReloadXDL(true); + // invio richiesta reset NUOVO ODL... + if (IdxOdl > 0) + { + await sendTaskOdl(IdxOdl); + } + await advStep(currStep++); // chiudo update... isProcessing = false; await InvokeAsync(StateHasChanged); 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..7461f342 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.1315 enable MP_TAB3 diff --git a/MP-TAB3/Resources/ChangeLog.html b/MP-TAB3/Resources/ChangeLog.html index b7b138c4..bc6581c0 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.1315


Note di rilascio:
  • diff --git a/MP-TAB3/Resources/VersNum.txt b/MP-TAB3/Resources/VersNum.txt index 5ef67702..a56e84e6 100644 --- a/MP-TAB3/Resources/VersNum.txt +++ b/MP-TAB3/Resources/VersNum.txt @@ -1 +1 @@ -6.16.2503.1314 +6.16.2503.1315 diff --git a/MP-TAB3/Resources/manifest.xml b/MP-TAB3/Resources/manifest.xml index 3549ff7b..cb467bbe 100644 --- a/MP-TAB3/Resources/manifest.xml +++ b/MP-TAB3/Resources/manifest.xml @@ -1,6 +1,6 @@ - 6.16.2503.1314 + 6.16.2503.1315 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 From cb8f5fe531043e4d82cc64b9a538dd396042a223 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Thu, 13 Mar 2025 16:11:56 +0100 Subject: [PATCH 2/3] Update gestione conteggio pezzi tavola e altra x controllo ODL senza conferma pezzi --- MP-TAB3/Components/OdlMan.razor.cs | 101 +++++++++++++++-------------- MP-TAB3/MP-TAB3.csproj | 2 +- MP-TAB3/Resources/ChangeLog.html | 2 +- MP-TAB3/Resources/VersNum.txt | 2 +- MP-TAB3/Resources/manifest.xml | 2 +- 5 files changed, 58 insertions(+), 51 deletions(-) diff --git a/MP-TAB3/Components/OdlMan.razor.cs b/MP-TAB3/Components/OdlMan.razor.cs index c3a3ecac..fcce2e18 100644 --- a/MP-TAB3/Components/OdlMan.razor.cs +++ b/MP-TAB3/Components/OdlMan.razor.cs @@ -706,48 +706,6 @@ namespace MP_TAB3.Components await InvokeAsync(StateHasChanged); } - private async Task sendTaskOdl(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.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"); - } - } - } - protected override void OnInitialized() { //baseLang = SMServ.GetConf("baseLang"); @@ -802,7 +760,7 @@ namespace MP_TAB3.Components } // verifica conferma produzione datiProdAct = await TabDServ.StatoProdMacchina(IdxMaccSel, DateTime.Now); - checkConfProd(); + await checkConfProd(); } protected async Task ProdEnd() @@ -1491,13 +1449,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(); @@ -1534,7 +1499,7 @@ namespace MP_TAB3.Components // recupero pz da confermare datiProdAct = await TabDServ.StatoProdMacchina(IdxMaccSel, adesso); - checkConfProd(); + await checkConfProd(); if (datiProdAct.Pz2RecTot > 0) { @@ -1694,7 +1659,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"); } } @@ -1781,6 +1746,48 @@ namespace MP_TAB3.Components fixTcNotePzPallet(reloadFromOdl); } + private async Task sendTaskOdl(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.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"); + } + } + } + private async Task updateIdxOdl() { // sistemo idxOdl... diff --git a/MP-TAB3/MP-TAB3.csproj b/MP-TAB3/MP-TAB3.csproj index 7461f342..659e5d51 100644 --- a/MP-TAB3/MP-TAB3.csproj +++ b/MP-TAB3/MP-TAB3.csproj @@ -3,7 +3,7 @@ net6.0 enable - 6.16.2503.1315 + 6.16.2503.1316 enable MP_TAB3 diff --git a/MP-TAB3/Resources/ChangeLog.html b/MP-TAB3/Resources/ChangeLog.html index bc6581c0..73d7d868 100644 --- a/MP-TAB3/Resources/ChangeLog.html +++ b/MP-TAB3/Resources/ChangeLog.html @@ -1,6 +1,6 @@ Modulo MAPOSPEC -

    Versione: 6.16.2503.1315

    +

    Versione: 6.16.2503.1316


    Note di rilascio:
    • diff --git a/MP-TAB3/Resources/VersNum.txt b/MP-TAB3/Resources/VersNum.txt index a56e84e6..23bb6c64 100644 --- a/MP-TAB3/Resources/VersNum.txt +++ b/MP-TAB3/Resources/VersNum.txt @@ -1 +1 @@ -6.16.2503.1315 +6.16.2503.1316 diff --git a/MP-TAB3/Resources/manifest.xml b/MP-TAB3/Resources/manifest.xml index cb467bbe..f4b3f46e 100644 --- a/MP-TAB3/Resources/manifest.xml +++ b/MP-TAB3/Resources/manifest.xml @@ -1,6 +1,6 @@ - 6.16.2503.1315 + 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 From b1508cdc1afa326c96f3c601e1cf6d50a4e39a5c Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Thu, 13 Mar 2025 16:48:18 +0100 Subject: [PATCH 3/3] Fix condizioni chiusura setup ODL con refresh --- MP-TAB3/Components/OdlMan.razor.cs | 179 ++++++++++++++++++++++------- 1 file changed, 135 insertions(+), 44 deletions(-) diff --git a/MP-TAB3/Components/OdlMan.razor.cs b/MP-TAB3/Components/OdlMan.razor.cs index fcce2e18..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); @@ -633,7 +678,7 @@ namespace MP_TAB3.Components // aggiungo articolo, commessa, richiesta pezzi... try { - await sendTaskOdl(idxODL_curr); + await DoSendTaskOdl(idxODL_curr); await advStep(currStep++); } catch (Exception exc) @@ -702,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); } @@ -892,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); } @@ -1028,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}?")) @@ -1089,9 +1160,20 @@ namespace MP_TAB3.Components // invio richiesta reset NUOVO ODL... if (IdxOdl > 0) { - await sendTaskOdl(IdxOdl); + 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); @@ -1554,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) @@ -1746,48 +1879,6 @@ namespace MP_TAB3.Components fixTcNotePzPallet(reloadFromOdl); } - private async Task sendTaskOdl(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.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"); - } - } - } - private async Task updateIdxOdl() { // sistemo idxOdl...