diff --git a/IOB-WIN-NEXT/IobOpcUaMBHCimolai.cs b/IOB-WIN-NEXT/IobOpcUaMBHCimolai.cs
index d8c7adf7..e1f06316 100644
--- a/IOB-WIN-NEXT/IobOpcUaMBHCimolai.cs
+++ b/IOB-WIN-NEXT/IobOpcUaMBHCimolai.cs
@@ -183,7 +183,7 @@ namespace IOB_WIN_NEXT
protected int lastAct = 0;
- protected bool lastExeMode = false;
+ protected bool lastIsInCorso = false;
protected int VETO_SEND_SNAPSHOT = 10;
@@ -230,6 +230,11 @@ namespace IOB_WIN_NEXT
}
}
+ ///
+ /// Ultimo rum mode rilevato x decidere SE inviare variazione...
+ ///
+ protected int lastRunMode = -999;
+
///
/// Attività corrente (INT) da keyRunMode valore di PLC/DB231/Attivita
///
@@ -389,11 +394,12 @@ namespace IOB_WIN_NEXT
// Gestione ODL automatica: se abilitata --> qui con start/stop da impianto...
if (doProcOdl)
{
+ lgTrace($"inizio process verifica presa in carico PODL | isInCorso: {isInCorso} | lastIsInCorso: {lastIsInCorso}");
// se rilevo variazione exe (curr/last)
// --> registro richiesta attreazzaggio PODL da info commessa
- if (lastExeMode != isInCorso)
+ if (lastIsInCorso != isInCorso)
{
- // se 0--> 1 --> registro
+ // se 0 --> 1 --> registro
if (isInCorso)
{
lgInfo("--------------------------------------------");
@@ -415,7 +421,7 @@ namespace IOB_WIN_NEXT
lgInfo("--------------------------------------------");
}
// registro exe mode
- lastExeMode = isInCorso;
+ lastIsInCorso = isInCorso;
}
}
@@ -635,39 +641,44 @@ namespace IOB_WIN_NEXT
vetoSnapshot = DateTime.Now;
}
- // invio del valore RU MODE come FLog
+ // invio del valore RUN MODE come FLog, SE variato...
if (!string.IsNullOrEmpty(currRun))
{
- // se ho valore --> invio
- string sVal = "";
- string descr = $"RunModeVal";
- DateTime locTStamp = DateTime.Now;
- sVal = $"Change 04: {locTStamp.ToString()} | descr: {descr} | Id: {opcUaParams.keyExeMode} | Val: {currRun}";
+ if (currReadErrors != lastRunMode)
+ {
+ // aggiorno last...
+ lastRunMode = currRunMode;
+ // se ho valore --> invio
+ string sVal = "";
+ string descr = $"RunModeVal";
+ DateTime locTStamp = DateTime.Now;
+ sVal = $"Change 04: {locTStamp.ToString()} | descr: {descr} | Id: {opcUaParams.keyExeMode} | Val: {currRun}";
- // cerco se sia un dato/valore in veto
- bool hasVetoLK = false;
- bool hasVetoLKV = false;
- hasVetoLK = opcUaParams.fluxLogKeyValVeto.ContainsKey(descr);
- if (hasVetoLK)
- {
- // se c'è controllo il valore...
- var valList = opcUaParams.fluxLogKeyValVeto[descr];
- hasVetoLKV = valList.Contains(currRun);
- }
- if (hasVetoLKV)
- {
- lgTrace($"NON ACCODATO sample: veto trovato per {descr}/{currRun} in fluxLogKeyValVeto ", false);
- }
- else
- {
- accodaFLog(sVal, qEncodeFLog(descr, currRun));
-
- // se richiesto provo a tradurre
- if (opcUaParams.runModeTrad)
+ // cerco se sia un dato/valore in veto
+ bool hasVetoLK = false;
+ bool hasVetoLKV = false;
+ hasVetoLK = opcUaParams.fluxLogKeyValVeto.ContainsKey(descr);
+ if (hasVetoLK)
{
- string RunModeDescr = itemTranslation("RunMode", currRun);
- descr = $"RunMode";
- accodaFLog(sVal, qEncodeFLog(descr, RunModeDescr));
+ // se c'è controllo il valore...
+ var valList = opcUaParams.fluxLogKeyValVeto[descr];
+ hasVetoLKV = valList.Contains(currRun);
+ }
+ if (hasVetoLKV)
+ {
+ lgTrace($"NON ACCODATO sample: veto trovato per {descr}/{currRun} in fluxLogKeyValVeto ", false);
+ }
+ else
+ {
+ accodaFLog(sVal, qEncodeFLog(descr, currRun));
+
+ // se richiesto provo a tradurre
+ if (opcUaParams.runModeTrad)
+ {
+ string RunModeDescr = itemTranslation("RunMode", currRun);
+ descr = $"RunMode";
+ accodaFLog(sVal, qEncodeFLog(descr, RunModeDescr));
+ }
}
}
}