Fix filtraggio anche x eventi MTConnect

This commit is contained in:
Samuele Locatelli
2021-12-14 09:33:13 +01:00
parent 42c0e558c5
commit 1bf6234913
+34 -19
View File
@@ -237,10 +237,21 @@ namespace IOB_WIN_NEXT
// verifico se salvare
bool changed = checkSaveItem(dataItem);
// cerco se non sia un dato filtrato in FLUXLOG...
if (changed || forceSend)
// cerco se non sia un dato filtrato in FLUXLOG...
bool isFiltered = mtcParams.fluxLogVeto.Contains(dataItem.DataItemId);
if (isFiltered)
{
accodaFLog(sVal, qEncodeFLog(time2, descr, dataItem.CDATA));
if (isVerboseLog)
{
lgInfo($"NON ACCODATO sample per {dataItem.DataItemId} poiché trovato VETO in fluxLogVeto", false);
}
}
else
{
if (changed || forceSend)
{
accodaFLog(sVal, qEncodeFLog(time2, descr, dataItem.CDATA));
}
}
}
}
@@ -318,22 +329,19 @@ namespace IOB_WIN_NEXT
* B2: pzCount
* B3: allarme
* B4: manuale
* B5: emergenza
* B5: emergenza (dipende da state machine se riportare 1 = armata/premuta, vedere conf mtcParams.emergencyArmedTrue)
----------------------------------------------------- */
// Controllo booleano PING e POWERON...
string currPowerOn = getDataItemValue(mtcParams.condPowerOn.keyName);
// se valido il check ping lo eseguo... altrimenti lo do x buono
bool checkPing = !mtcParams.pingAsPowerOn;
if (!checkPing)
{
checkPing = (testPingMachine == IPStatus.Success);
}
bool isPingOk = (testPingMachine == IPStatus.Success);
// verifico da target value richiesto...
bool checkPowerOn = (currPowerOn == mtcParams.condPowerOn.targetValue);
// bit 0 (poweron) imposto a 1 SE pingo o PowerOn=="ON"...
B_input = (checkPing || checkPowerOn) ? 1 : 0;
B_input = ((isPingOk && mtcParams.pingAsPowerOn) || checkPowerOn) ? 1 : 0;
// variabili RUN...
string currRun = getDataItemValue(mtcParams.keyRunMode);
@@ -358,11 +366,6 @@ namespace IOB_WIN_NEXT
B_input += (1 << 1);
}
}
// emergenza premuta = 1
else if (hasEStopTriggered && !mtcParams.emergencyArmedTrue)
{
B_input += (1 << 5);
}
// se ho almeno 1 allarme E NON SONO IN AUTO --> ALARM!
else if (hasError)
{
@@ -374,11 +377,23 @@ namespace IOB_WIN_NEXT
B_input += (1 << 4);
}
// emergenza armata = 1
if (!hasEStopTriggered && mtcParams.emergencyArmedTrue)
// emergenza armata da riportare con bit True/ 1
if (mtcParams.emergencyArmedTrue)
{
B_input += (1 << 5);
//se NON premuta lazo il bit
if (!hasEStopTriggered)
{
B_input += (1 << 5);
}
}
// emergenza armata da riportare come False/0 (!mtcParams.emergencyArmedTrue)
else
{
// se premuta alzo il bit...
if (hasEStopTriggered)
{
B_input += (1 << 5);
}
}
DateTime adesso = DateTime.Now;