diff --git a/IOB-WIN-NEXT/DATA/CONF/BAGLIETTO_CIMOLAI_01.json b/IOB-WIN-NEXT/DATA/CONF/BAGLIETTO_CIMOLAI_01.json
index 2aedc640..8ea3c904 100644
--- a/IOB-WIN-NEXT/DATA/CONF/BAGLIETTO_CIMOLAI_01.json
+++ b/IOB-WIN-NEXT/DATA/CONF/BAGLIETTO_CIMOLAI_01.json
@@ -141,6 +141,11 @@
},
"fluxLogKeyValVeto": {
"RunModeVal": [
+ "-1",
+ "0"
+ ],
+ "OPC_PLC/DB231/Attivita": [
+ "-1",
"0"
]
}
diff --git a/IOB-WIN-NEXT/IobGeneric.cs b/IOB-WIN-NEXT/IobGeneric.cs
index afbc516e..461ac3cf 100644
--- a/IOB-WIN-NEXT/IobGeneric.cs
+++ b/IOB-WIN-NEXT/IobGeneric.cs
@@ -4517,10 +4517,41 @@ namespace IOB_WIN_NEXT
protected int getFluxValInt(DossierFluxLogDTO resultSet, string codFlux)
{
int answ = 0;
- string rawVal = getFluxVal(resultSet, codFlux).Replace(",",".");
+ double dVal = 0;
+ var style = NumberStyles.AllowDecimalPoint;
+ var culture = CultureInfo.InvariantCulture;
+ string rawVal = getFluxVal(resultSet, codFlux);
+ if (rawVal.Contains(","))
+ {
+ rawVal = rawVal.Replace(",", ".");
+ }
if (!string.IsNullOrEmpty(rawVal))
{
- int.TryParse(rawVal, out answ);
+ double.TryParse(rawVal, style, culture, out dVal);
+ answ = (int)dVal;
+ }
+ return answ;
+ }
+
+ ///
+ /// Recupero dati da FluxLog formato double
+ ///
+ ///
+ ///
+ ///
+ protected double getFluxValDouble(DossierFluxLogDTO resultSet, string codFlux)
+ {
+ double answ = 0;
+ var style = NumberStyles.AllowDecimalPoint;
+ var culture = CultureInfo.InvariantCulture;
+ string rawVal = getFluxVal(resultSet, codFlux);
+ if (rawVal.Contains(","))
+ {
+ rawVal = rawVal.Replace(",", ".");
+ }
+ if (!string.IsNullOrEmpty(rawVal))
+ {
+ double.TryParse(rawVal, style, culture, out answ);
}
return answ;
}
diff --git a/IOB-WIN-NEXT/IobOpcUa.cs b/IOB-WIN-NEXT/IobOpcUa.cs
index 35922c3d..065ea264 100644
--- a/IOB-WIN-NEXT/IobOpcUa.cs
+++ b/IOB-WIN-NEXT/IobOpcUa.cs
@@ -410,7 +410,7 @@ namespace IOB_WIN_NEXT
string descr = "";
DateTime locTStamp = DateTime.Now;
descr = itemTranslation("OPC", MonIt.DisplayName);
- sVal = $"Change: {locTStamp.ToString()} | descr: {descr} | Id: {MonIt.StartNodeId} | Val: {NotifyValue}";
+ sVal = $"Change 01: {locTStamp.ToString()} | descr: {descr} | Id: {MonIt.StartNodeId} | Val: {NotifyValue}";
lgInfo(sVal);
// verifico se salvare
@@ -486,7 +486,7 @@ namespace IOB_WIN_NEXT
string descr = "";
DateTime locTStamp = DateTime.Now;
descr = itemTranslation("OPC", MonIt.DisplayName);
- sVal = $"Change: {locTStamp.ToString()} | descr: {descr} | Id: {MonIt.StartNodeId} | Val: {currVal}";
+ sVal = $"Change 02: {locTStamp.ToString()} | descr: {descr} | Id: {MonIt.StartNodeId} | Val: {currVal}";
lgInfo(sVal);
// verifico se salvare
@@ -537,8 +537,8 @@ namespace IOB_WIN_NEXT
string sVal = "";
string descr = $"RunModeVal";
DateTime locTStamp = DateTime.Now;
- sVal = $"Change: {locTStamp.ToString()} | descr: {descr} | Id: {opcUaParams.keyRunMode} | Val: {currRun}";
- //cerco se sia un dato/valore
+ sVal = $"Change 03: {locTStamp.ToString()} | descr: {descr} | Id: {opcUaParams.keyRunMode} | Val: {currRun}";
+ // cerco se sia un dato/valore
hasVetoLK = opcUaParams.fluxLogKeyValVeto.ContainsKey(descr);
if (hasVetoLK)
{
diff --git a/IOB-WIN-NEXT/IobOpcUaMBHCimolai.cs b/IOB-WIN-NEXT/IobOpcUaMBHCimolai.cs
index 18fb793b..23f7f90a 100644
--- a/IOB-WIN-NEXT/IobOpcUaMBHCimolai.cs
+++ b/IOB-WIN-NEXT/IobOpcUaMBHCimolai.cs
@@ -240,15 +240,34 @@ namespace IOB_WIN_NEXT
string sVal = "";
string descr = $"RunModeVal";
DateTime locTStamp = DateTime.Now;
- sVal = $"Change: {locTStamp.ToString()} | descr: {descr} | Id: {opcUaParams.keyRunMode} | Val: {currRun}";
- accodaFLog(sVal, qEncodeFLog(descr, currRun));
+ sVal = $"Change 04: {locTStamp.ToString()} | descr: {descr} | Id: {opcUaParams.keyRunMode} | Val: {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));
+ }
}
}
}