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}"); }