diff --git a/MP-IO/Controllers/IOBController.cs b/MP-IO/Controllers/IOBController.cs
index 3983b4ed..c37a896f 100644
--- a/MP-IO/Controllers/IOBController.cs
+++ b/MP-IO/Controllers/IOBController.cs
@@ -223,10 +223,12 @@ namespace MP_IO.Controllers
}
///
/// AGGIUNGE TASK richiesto x macchina:
- ///
- /// GET: IOB/addTask2Exe/SIMUL_03?taskName=T180326160502&taskVal=setPrg:PRG001
+ ///
/// GET: IOB/addTask2Exe/3010?taskName=startSetup&taskVal=T190406101512
/// GET: IOB/addTask2Exe/3010?taskName=stopSetup&taskVal=T190406101512
+ /// GET: IOB/addTask2Exe/SIMUL_03?taskName=setProg&taskVal=P00000001
+ /// GET: IOB/addTask2Exe/SIMUL_03?taskName=setComm&taskVal=ODL_0000123
+ /// GET: IOB/addTask2Exe/SIMUL_03?taskName=setArt&taskVal=ART_0000321
///
///
///
@@ -240,7 +242,17 @@ namespace MP_IO.Controllers
connDb.scriviKeepAlive(id, DateTime.Now);
try
{
- DataLayer.addTask4Machine(id, taskName, taskVal);
+ // converto stringa in tipo task...
+ taskType tName = taskType.nihil;
+ bool fatto = Enum.TryParse(taskName, out tName);
+ if (fatto)
+ {
+ DataLayer.addTask4Machine(id, tName, taskVal);
+ }
+ else
+ {
+ logger.lg.scriviLog($"addTask2Exe: impossibile riconoscere il comando {taskName} come uno deitipi ammessi, NON aggiunto", tipoLog.ERROR);
+ }
answ = getTask2Exe(id);
}
catch
diff --git a/MP-TAB/WebUserControls/mod_ODL.ascx b/MP-TAB/WebUserControls/mod_ODL.ascx
index fc54b946..cf0534e1 100644
--- a/MP-TAB/WebUserControls/mod_ODL.ascx
+++ b/MP-TAB/WebUserControls/mod_ODL.ascx
@@ -104,6 +104,11 @@
Effettua Riattrezzaggio
+
+
+
Fix chiusura attrezzaggio (PLC)
+
+
diff --git a/MP-TAB/WebUserControls/mod_ODL.ascx.cs b/MP-TAB/WebUserControls/mod_ODL.ascx.cs
index 44fc55e3..4513e04b 100644
--- a/MP-TAB/WebUserControls/mod_ODL.ascx.cs
+++ b/MP-TAB/WebUserControls/mod_ODL.ascx.cs
@@ -435,6 +435,7 @@ namespace MoonProTablet.WebUserControls
divOpRiattr.Visible = (showSplitOdlOnTavVal || showReopOdlTav);
lbtSplitOdlSuTav.Visible = showSplitOdlOnTavVal;
lbtReopOdlSuTav.Visible = showReopOdlTav;
+ lbtFixEndSetup.Visible = !maccInAttr && memLayer.ML.CRB("OptEnableFixSetup");
}
///
/// Sistema CSS x status enabled/disabled
@@ -712,9 +713,12 @@ namespace MoonProTablet.WebUserControls
StringBuilder sb = new StringBuilder();
sb.AppendLine(String.Format(evText, idxODL_curr));
processaEvento(idxMacchina, idxEvento, sb.ToString(), idxODL_curr);
- // indico INIZIO SETUP su REDIS coem EXE della macchina...
+ // indico INIZIO SETUP su REDIS come EXE della macchina...
string ts = string.Format("{0:yyMMdd}T{0:HHmmss.fff}Z", DateTime.Now);
- DataLayer.addTask4Machine(idxMacchina, "startSetup", $"TS:{ts}|MATR:{DataLayer.MatrOpr}|ODL:{idxODL_curr}");
+#if false
+ //DataLayer.addTask4Machine(idxMacchina, "startSetup", $"TS:{ts}|MATR:{DataLayer.MatrOpr}|ODL:{idxODL_curr}");
+#endif
+ DataLayer.addTask4Machine(idxMacchina, taskType.startSetup, $"TS:{ts}|MATR:{DataLayer.MatrOpr}|ODL:{idxODL_curr}");
// se è multi CHIUDO ODL x altra tavola...
if (isMulti)
{
@@ -793,9 +797,10 @@ namespace MoonProTablet.WebUserControls
StringBuilder sb = new StringBuilder();
sb.AppendLine(String.Format(evText, idxODL));
processaEvento(idxMacchina, idxEvento, sb.ToString(), idxODL);
- // indico INIZIO SETUP su REDIS coem EXE della macchina...
+ // indico INIZIO SETUP su REDIS come EXE della macchina...
string ts = string.Format("{0:yyMMdd}T{0:HHmmss.fff}Z", DateTime.Now);
- DataLayer.addTask4Machine(idxMacchina, "stopSetup", $"TS:{ts}|MATR:{DataLayer.MatrOpr}|ODL:{idxODL}");
+ //DataLayer.addTask4Machine(idxMacchina, "stopSetup", $"TS:{ts}|MATR:{DataLayer.MatrOpr}|ODL:{idxODL}");
+ DataLayer.addTask4Machine(idxMacchina, taskType.stopSetup, $"TS:{ts}|MATR:{DataLayer.MatrOpr}|ODL:{idxODL}");
// se è multi processo chiusura setup x altra tavola...
if (isMulti)
{
@@ -1183,5 +1188,14 @@ namespace MoonProTablet.WebUserControls
{
odsODL.DataBind();
}
+
+ protected void lbtFixEndSetup_Click(object sender, EventArgs e)
+ {
+ string ts = string.Format("{0:yyMMdd}T{0:HHmmss.fff}Z", DateTime.Now);
+ string outData = $"TS:{ts}|MATR:{DataLayer.MatrOpr}|ODL:{idxOdlMacc}";
+ DataLayer.addTask4Machine(idxMacchina, taskType.fixStopSetup, outData);
+ outData = "Inserita richiesta invio Fix chiusura attrezzaggio " + outData;
+ lblOut.Text = outData;
+ }
}
}
\ No newline at end of file
diff --git a/MP-TAB/WebUserControls/mod_ODL.ascx.designer.cs b/MP-TAB/WebUserControls/mod_ODL.ascx.designer.cs
index 719d6986..f9bd9b73 100644
--- a/MP-TAB/WebUserControls/mod_ODL.ascx.designer.cs
+++ b/MP-TAB/WebUserControls/mod_ODL.ascx.designer.cs
@@ -237,6 +237,15 @@ namespace MoonProTablet.WebUserControls {
///
protected global::System.Web.UI.WebControls.LinkButton lbtSplitODL;
+ ///
+ /// Controllo lbtFixEndSetup.
+ ///
+ ///
+ /// Campo generato automaticamente.
+ /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind.
+ ///
+ protected global::System.Web.UI.WebControls.LinkButton lbtFixEndSetup;
+
///
/// Controllo divOdlProvv.
///
diff --git a/MapoDb/DataLayer.cs b/MapoDb/DataLayer.cs
index ef4a7c9c..a7c46640 100644
--- a/MapoDb/DataLayer.cs
+++ b/MapoDb/DataLayer.cs
@@ -1148,7 +1148,30 @@ namespace MapoDb
}
return answ;
}
-
+ ///
+ /// Aggiunge un task all'elenco di quelli salvati (in modalità upsert)
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static bool addTask4Machine(string idxMacchina, taskType taskKey, string taskVal)
+ {
+ bool answ = false;
+ string currHash = exeTaskHash(idxMacchina);
+ try
+ {
+ // leggo task attuali...
+ var currTask = mTaskMacchina(idxMacchina);
+ currTask[taskKey.ToString()] = taskVal;
+ answ = memLayer.ML.redSaveHashDict(currHash, currTask);
+ logger.lg.scriviLog($"Task ADD - idxMacchina: {idxMacchina} | taskKey: {taskKey.ToString()} | taskVal: {taskVal}");
+ }
+ catch
+ { }
+ return answ;
+ }
+#if false
///
/// Aggiunge un task all'elenco di quelli salvati (in modalità upsert)
///
@@ -1166,12 +1189,13 @@ namespace MapoDb
var currTask = mTaskMacchina(idxMacchina);
currTask[taskKey] = taskVal;
answ = memLayer.ML.redSaveHashDict(currHash, currTask);
- logger.lg.scriviLog($"Task ADD - idxMacchina: {idxMacchina} | taskKey: {taskKey} | taskVal: {taskVal}");
+ logger.lg.scriviLog($"Task ADD - idxMacchina: {idxMacchina} | taskKey: {taskKey} | taskVal: {taskVal}");
}
catch
{ }
return answ;
- }
+ }
+#endif
///
/// RIMUOVE un task dall'elenco di quelli salvati
///
@@ -1925,6 +1949,52 @@ namespace MapoDb
}
}
+///
+/// Elenco task ammessi (x IOB-WIN da eseguire...)
+///
+public enum taskType
+{
+ ///
+ /// Task nullo / fake
+ ///
+ nihil,
+ ///
+ /// Rimanda a PLC eventuale segnale NON in setup (MA NON RESETTA)
+ ///
+ fixStopSetup,
+ ///
+ /// Indica al PLC di forzare il reset del contapezzi
+ ///
+ forceResetPzCount,
+ ///
+ /// Indica al PLC di forzare il NUOVO valore di contapezzi (impostato come value)
+ ///
+ forceSetPzCount,
+ ///
+ /// Imposta Articolo su PLC
+ ///
+ setArt,
+ ///
+ /// Imposta Commessa su PLC
+ ///
+ setComm,
+ ///
+ /// Set Programma CNC su PLC
+ ///
+ setProg,
+ ///
+ /// Indica al PLC iniziato setup (e secondo casi ferma contapezzi /resetta)
+ ///
+ startSetup,
+ ///
+ /// Indica al PLC finito setup (e secondo casi ferma contapezzi /resetta)
+ ///
+ stopSetup,
+ ///
+ /// Richiesta invio watchdog a PLC
+ ///
+ sendWatchDogMes2Plc
+}
public enum tipoSelettore
{
articoli
diff --git a/MapoDb/utility.cs b/MapoDb/utility.cs
index 7db5c50b..c15e7c71 100644
--- a/MapoDb/utility.cs
+++ b/MapoDb/utility.cs
@@ -230,6 +230,8 @@ public class utility
#endregion
}
+
+
public enum tipoBarcode
{
///