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...