update cimolai x evitare repliche stato runmode 1

This commit is contained in:
Samuele Locatelli
2023-02-22 11:59:00 +01:00
parent 6383a31b15
commit c52963cb21
+44 -33
View File
@@ -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
}
}
/// <summary>
/// Ultimo rum mode rilevato x decidere SE inviare variazione...
/// </summary>
protected int lastRunMode = -999;
/// <summary>
/// Attività corrente (INT) da keyRunMode valore di PLC/DB231/Attivita
/// </summary>
@@ -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));
}
}
}
}