diff --git a/IOB-WIN-NEXT/Iob/Generic.cs b/IOB-WIN-NEXT/Iob/Generic.cs
index a202bebb..e23d24ef 100644
--- a/IOB-WIN-NEXT/Iob/Generic.cs
+++ b/IOB-WIN-NEXT/Iob/Generic.cs
@@ -62,10 +62,9 @@ namespace IOB_WIN_NEXT.Iob
// setup currProdData & last prod data
currProdData = redisMan.redGetHashDict(rKeyCurrProdData);
-
// aggiungo altri defaults
setDefaults(true);
-
+ // imposta valori memoria (e resetta parametri su server)
setParamPlc();
// checkLogDir x shrink!
@@ -74,6 +73,9 @@ namespace IOB_WIN_NEXT.Iob
// imposto veto invio per i prossimi sec
dtVetoQueueIN = DateTime.Now.AddSeconds(vetoQueueIn);
lgInfoStartup($"Impostato veto QUEUE-IN a {vetoQueueIn}s | fino alle {dtVetoQueueIN:yyyy.MM.dd HH:mm:ss}");
+
+ // verifico invio parametri se encessario
+ processMem2Write();
// concluso!
lgInfoStartup("Istanziata classe preliminare IOBGeneric");
}
@@ -5115,6 +5117,7 @@ namespace IOB_WIN_NEXT.Iob
///
/// Metodo da overridare x scrivere DAVVERO i parametri sul PLC
+ /// NB: deve resettare reqValue
///
///
protected virtual void plcWriteParams(ref List updatedPar)
@@ -5278,7 +5281,7 @@ namespace IOB_WIN_NEXT.Iob
// sistemo valori
item.value = item.reqValue;
lgInfo($"Richiesta update parametro {item.uid} | actVal = {item.value} | reqVal = {item.reqValue}");
- item.reqValue = "";
+ //item.reqValue = "";
// salvo in lista da ritrasmettere
updatedPar.Add(item);
}
@@ -6075,9 +6078,16 @@ namespace IOB_WIN_NEXT.Iob
// salvo ANCHE come parametri i valori...
objItem currItem = new objItem();
List allParam = new List();
+ string currValore = "";
// valori WRITE
foreach (var item in memMap.mMapWrite)
{
+ currValore = "";
+ //se ho valori current li impiego...
+ if (currProdData.ContainsKey(item.Value.name))
+ {
+ currValore = currProdData[item.Value.name];
+ }
currItem = new objItem()
{
uid = item.Value.name,
@@ -6087,6 +6097,7 @@ namespace IOB_WIN_NEXT.Iob
UM = item.Value.unit,
valMin = item.Value.minVal,
valMax = item.Value.maxVal,
+ value = currValore,
displOrdinal = item.Value.displOrdinal
};
allParam.Add(currItem);
@@ -6098,6 +6109,12 @@ namespace IOB_WIN_NEXT.Iob
var trovato = allParam.FirstOrDefault(x => x.uid == item.Value.name);
if (trovato == null)
{
+ currValore = "";
+ //se ho valori current li impiego...
+ if (currProdData.ContainsKey(item.Value.name))
+ {
+ currValore = currProdData[item.Value.name];
+ }
currItem = new objItem()
{
uid = item.Value.name,
@@ -6107,12 +6124,13 @@ namespace IOB_WIN_NEXT.Iob
UM = item.Value.unit,
valMin = item.Value.minVal,
valMax = item.Value.maxVal,
+ value = currValore,
displOrdinal = item.Value.displOrdinal
};
allParam.Add(currItem);
}
}
- // invio su cloud parametri SE sono connesso alla macchina...
+ // invio su cloud parametri SE sono connesso alla macchina... in pratica reset parametri...
if (serverOk)
{
string tipoCall = urlSaveAllParams;
@@ -7069,7 +7087,8 @@ namespace IOB_WIN_NEXT.Iob
uid = item.Key,
name = item.Key,
description = memMap.mMapWrite[item.Key].description,
- reqValue = memMap.mMapWrite[item.Key].value,
+ //reqValue = memMap.mMapWrite[item.Key].value,
+ reqValue = item.Value,
value = item.Value,
lastRequest = DateTime.Now,
writable = true,
diff --git a/IOB-WIN-NEXT/Iob/Omron.cs b/IOB-WIN-NEXT/Iob/Omron.cs
index 5a823283..ecd6ea47 100644
--- a/IOB-WIN-NEXT/Iob/Omron.cs
+++ b/IOB-WIN-NEXT/Iob/Omron.cs
@@ -595,25 +595,29 @@ namespace IOB_WIN_NEXT.Iob
switch (item.uid)
{
case "kgRich":
- int.TryParse(item.value, out valInt);
+ // 2023.09.19 value --> reqValue
+ int.TryParse(item.reqValue, out valInt);
pesoRichiesto = valInt;
readBackVal = pesoRichiesto.ToString();
break;
case "kgLotto":
- int.TryParse(item.value, out valInt);
+ // 2023.09.19 value --> reqValue
+ int.TryParse(item.reqValue, out valInt);
quantitaLotto = valInt;
readBackVal = quantitaLotto.ToString();
break;
case "portata":
- int.TryParse(item.value, out valInt);
+ // 2023.09.19 value --> reqValue
+ int.TryParse(item.reqValue, out valInt);
portata = valInt;
readBackVal = portata.ToString();
break;
case "setComm":
- commessa = item.value;
+ // 2023.09.19 value --> reqValue
+ commessa = item.reqValue;
readBackVal = commessa;
break;
@@ -625,6 +629,11 @@ namespace IOB_WIN_NEXT.Iob
{
lgError($"Errore in plcWriteParams: uid {item.uid} | Wrote {item.value} | ReadBack {readBackVal}");
}
+ // 2023.09.19 resetto richiesta
+ else
+ {
+ item.reqValue = "";
+ }
}
}
}
diff --git a/IOB-WIN-NEXT/Iob/Simula.cs b/IOB-WIN-NEXT/Iob/Simula.cs
index f23d85e2..69501884 100644
--- a/IOB-WIN-NEXT/Iob/Simula.cs
+++ b/IOB-WIN-NEXT/Iob/Simula.cs
@@ -210,8 +210,11 @@ namespace IOB_WIN_NEXT.Iob
case taskType.setComm:
case taskType.setProg:
case taskType.setPzComm:
+#if false
memMap.mMapWrite[item.Key].value = item.Value;
- taskVal = $"taskReq: {tName} | key: {item.Key} | val: {item.Value} | UPDATED memMap.mMapWrite";
+ taskVal = $"taskReq: {tName} | key: {item.Key} | val: {item.Value} | UPDATED memMap.mMapWrite";
+#endif
+ taskVal = processMemWriteRequests();
break;
case taskType.setParameter:
@@ -738,8 +741,10 @@ namespace IOB_WIN_NEXT.Iob
byteSize = currMem.size;
memAddrWrite = currMem.memAddr;
MemBlock = new byte[byteSize];
+#if false
// faccio preliminarmente upsertKey...
- upsertKey(currMem.name, currMem.value);
+ upsertKey(currMem.name, currMem.value);
+#endif
serObj = JsonConvert.SerializeObject(item, Formatting.Indented);
lgInfo($"Inizio processing plcWriteParams per {currMem.name} | valore richiesto {currMem.value}{Environment.NewLine}---------------UPDATED PARAM---------------{Environment.NewLine}{serObj}{Environment.NewLine}---------------");
serObj = JsonConvert.SerializeObject(currMem, Formatting.Indented);
@@ -749,10 +754,8 @@ namespace IOB_WIN_NEXT.Iob
// registro x invio
item.value = item.reqValue;
item.reqValue = "";
- // invio su server i parametri aggiornati!
- string rawData = JsonConvert.SerializeObject(updatedPar);
- lgInfo("Notifica a server scrittura parametri");
- utils.callUrl($"{urlUpdateWriteParams}", rawData);
+ // salvo
+ upsertKey(item.uid, item.value);
}
else
@@ -765,6 +768,12 @@ namespace IOB_WIN_NEXT.Iob
lgError($"Eccezione in fase di plcWriteParams per item {item.uid} con valore {item.value}{Environment.NewLine}{exc}");
}
}
+#if false
+ // invio su server i parametri aggiornati!
+ string rawData = JsonConvert.SerializeObject(updatedPar);
+ lgInfo("Notifica a server scrittura parametri");
+ utils.callUrl($"{urlUpdateWriteParams}", rawData);
+#endif
}
}
diff --git a/IOB-WIN-NEXT/IobOpc/OpcUaCMS.cs b/IOB-WIN-NEXT/IobOpc/OpcUaCMS.cs
index 1c0273ae..7d2e3653 100644
--- a/IOB-WIN-NEXT/IobOpc/OpcUaCMS.cs
+++ b/IOB-WIN-NEXT/IobOpc/OpcUaCMS.cs
@@ -364,6 +364,9 @@ namespace IOB_WIN_NEXT.IobOpc
if (!string.IsNullOrEmpty(memAddrWrite))
{
nodes2Write.Add(commWriteVal);
+ // 2023.09.19 resetto richiesta
+ item.reqValue = "";
+
}
else
{
diff --git a/IOB-WIN-NEXT/IobOpc/OpcUaEwon.cs b/IOB-WIN-NEXT/IobOpc/OpcUaEwon.cs
index 605e3ab8..955ee3f9 100644
--- a/IOB-WIN-NEXT/IobOpc/OpcUaEwon.cs
+++ b/IOB-WIN-NEXT/IobOpc/OpcUaEwon.cs
@@ -344,6 +344,8 @@ namespace IOB_WIN_NEXT.IobOpc
if (!string.IsNullOrEmpty(memAddrWrite))
{
nodes2Write.Add(commWriteVal);
+ // 2023.09.19 resetto richiesta
+ item.reqValue = "";
}
else
{
diff --git a/IOB-WIN-NEXT/IobOpc/OpcUaEwonMecolpress.cs b/IOB-WIN-NEXT/IobOpc/OpcUaEwonMecolpress.cs
index 5c67aea7..e21e4058 100644
--- a/IOB-WIN-NEXT/IobOpc/OpcUaEwonMecolpress.cs
+++ b/IOB-WIN-NEXT/IobOpc/OpcUaEwonMecolpress.cs
@@ -83,6 +83,7 @@ namespace IOB_WIN_NEXT.IobOpc
// accodo x scrittura
nodes2Write.Add(commWriteVal);
lgInfo($"richiesta scrittura valore | nodeId: {commWriteVal.NodeId} | targetPar: {item.TargetParam} | val {commWriteVal.Value.Value}");
+
}
// x ora NON eseguo
diff --git a/IOB-WIN-NEXT/IobOpc/OpcUaEwonMonti.cs b/IOB-WIN-NEXT/IobOpc/OpcUaEwonMonti.cs
index 95958531..80838ace 100644
--- a/IOB-WIN-NEXT/IobOpc/OpcUaEwonMonti.cs
+++ b/IOB-WIN-NEXT/IobOpc/OpcUaEwonMonti.cs
@@ -193,6 +193,8 @@ namespace IOB_WIN_NEXT.IobOpc
if (!string.IsNullOrEmpty(memAddrWrite))
{
nodes2Write.Add(commWriteVal);
+ // 2023.09.19 resetto richiesta
+ item.reqValue = "";
}
else
{
diff --git a/IOB-WIN-NEXT/IobOpc/OpcUaImas.cs b/IOB-WIN-NEXT/IobOpc/OpcUaImas.cs
index 31e05748..6db3c49b 100644
--- a/IOB-WIN-NEXT/IobOpc/OpcUaImas.cs
+++ b/IOB-WIN-NEXT/IobOpc/OpcUaImas.cs
@@ -340,6 +340,8 @@ namespace IOB_WIN_NEXT.IobOpc
if (!string.IsNullOrEmpty(memAddrWrite))
{
nodes2Write.Add(commWriteVal);
+ // 2023.09.19 resetto richiesta
+ item.reqValue = "";
}
else
{
diff --git a/IOB-WIN-NEXT/IobOpc/OpcUaMBH.cs b/IOB-WIN-NEXT/IobOpc/OpcUaMBH.cs
index a89e1700..9aded7b8 100644
--- a/IOB-WIN-NEXT/IobOpc/OpcUaMBH.cs
+++ b/IOB-WIN-NEXT/IobOpc/OpcUaMBH.cs
@@ -353,6 +353,8 @@ namespace IOB_WIN_NEXT.IobOpc
if (!string.IsNullOrEmpty(memAddrWrite))
{
nodes2Write.Add(commWriteVal);
+ // 2023.09.19 resetto richiesta
+ item.reqValue = "";
}
else
{
diff --git a/IOB-WIN-NEXT/IobOpc/OpcUaOmron.cs b/IOB-WIN-NEXT/IobOpc/OpcUaOmron.cs
index c5446668..4a6304e3 100644
--- a/IOB-WIN-NEXT/IobOpc/OpcUaOmron.cs
+++ b/IOB-WIN-NEXT/IobOpc/OpcUaOmron.cs
@@ -344,6 +344,8 @@ namespace IOB_WIN_NEXT.IobOpc
if (!string.IsNullOrEmpty(memAddrWrite))
{
nodes2Write.Add(commWriteVal);
+ // 2023.09.19 resetto richiesta
+ item.reqValue = "";
}
else
{
diff --git a/IOB-WIN-NEXT/IobOpc/OpcUaSiemens.cs b/IOB-WIN-NEXT/IobOpc/OpcUaSiemens.cs
index f80c754e..00c48323 100644
--- a/IOB-WIN-NEXT/IobOpc/OpcUaSiemens.cs
+++ b/IOB-WIN-NEXT/IobOpc/OpcUaSiemens.cs
@@ -345,6 +345,8 @@ namespace IOB_WIN_NEXT.IobOpc
if (!string.IsNullOrEmpty(memAddrWrite))
{
nodes2Write.Add(commWriteVal);
+ // 2023.09.19 resetto richiesta
+ item.reqValue = "";
}
else
{
diff --git a/IOB-WIN-NEXT/IobOpc/OpcUaUlma.cs b/IOB-WIN-NEXT/IobOpc/OpcUaUlma.cs
index 5deae16f..30747393 100644
--- a/IOB-WIN-NEXT/IobOpc/OpcUaUlma.cs
+++ b/IOB-WIN-NEXT/IobOpc/OpcUaUlma.cs
@@ -340,6 +340,8 @@ namespace IOB_WIN_NEXT.IobOpc
if (!string.IsNullOrEmpty(memAddrWrite))
{
nodes2Write.Add(commWriteVal);
+ // 2023.09.19 resetto richiesta
+ item.reqValue = "";
}
else
{
diff --git a/IOB-WIN-NEXT/IobSoap/Gomba.cs b/IOB-WIN-NEXT/IobSoap/Gomba.cs
index 88a6ec26..17c62360 100644
--- a/IOB-WIN-NEXT/IobSoap/Gomba.cs
+++ b/IOB-WIN-NEXT/IobSoap/Gomba.cs
@@ -367,7 +367,7 @@ namespace IOB_WIN_NEXT.IobSoap
// se รจ OK
if (fatto)
{
- item.value = answ.feedback;
+ item.value = $"{answ.feedback} | {answ.notes}";
item.reqValue = "";
item.lastRead = DateTime.Now;
item.UM = "";
@@ -376,7 +376,7 @@ namespace IOB_WIN_NEXT.IobSoap
}
else
{
- item.value = answ.feedback;
+ item.value = $"{answ.feedback} | {answ.notes}";
item.reqValue = "";
lgError($"reqWeight | Errore in richiesta peso GOMBA | {answ.feedback} | {answ.notes}");
}