diff --git a/IOB-WIN-NEXT/DATA/CONF/FINASSI_HELPI_01_alarm.json b/IOB-WIN-NEXT/DATA/CONF/FINASSI_HELPI_01_alarm.json
index e4794d30..dee831f3 100644
--- a/IOB-WIN-NEXT/DATA/CONF/FINASSI_HELPI_01_alarm.json
+++ b/IOB-WIN-NEXT/DATA/CONF/FINASSI_HELPI_01_alarm.json
@@ -18,8 +18,8 @@
"##",
"EMERGENZA FINECORSA GUIDA INGRESSO",
"ANOMALIA BARRA SALDATURA",
- "TIMEOUT PROXIMITY SBOBINATORE INFERIORE",
- "TIMEOUT PROXIMITY SBOBINATORE SUPERIORE",
+ "##TIMEOUT PROXIMITY SBOBINATORE INFERIORE",
+ "##TIMEOUT PROXIMITY SBOBINATORE SUPERIORE",
"ROTTURA FILM",
"ANOMALIA SONDA PT100 TUNNEL",
"ANOMALIA SONDA PT100 SALDATURA",
diff --git a/IOB-WIN-NEXT/IobGeneric.cs b/IOB-WIN-NEXT/IobGeneric.cs
index cab211ac..621c908f 100644
--- a/IOB-WIN-NEXT/IobGeneric.cs
+++ b/IOB-WIN-NEXT/IobGeneric.cs
@@ -4416,6 +4416,7 @@ namespace IOB_WIN_NEXT
bool answ = false;
int numErrors = 0;
int currStatus = 0;
+ ushort full16 = 65535;
int[] listInt = new int[2];
if (alarmMaps != null)
{
@@ -4425,31 +4426,17 @@ namespace IOB_WIN_NEXT
// banchi in array Int16 --> scompongo
for (int i = 0; i < item.size / 2; i++)
{
-#if false
- // verifico se usare LUT
- bool useLUT = memSetR != null && memSetR.Count > 0;
- if (useLUT)
+ currStatus = getAlarmStatus(item);
+ // ora filtro x l'i-esimo banco a 16 bit...
+ if (i == 0)
{
- int lutAddress = 40000 + item.index;
- if (HoldingRegisterLUT.ContainsKey(lutAddress))
- {
- try
- {
- listInt = HoldingRegisterLUT[lutAddress];
- }
- catch (Exception exc)
- {
- lgError($"Errore in lettura da HoldingRegisterLUT per indirizzo {lutAddress} | item {item.memAddr}{Environment.NewLine}{exc}");
- }
- }
+ currStatus = (ushort)(currStatus & full16);
}
else
{
- listInt = readInputReg(item.index, item.size);
+ var temp = currStatus >> 16;
+ currStatus = (ushort)temp;
}
- currStatus = ModbusClient.ConvertRegistersToInt(listInt);
-#endif
- currStatus = getAlarmStatus(item);
// aggiornamento blink counters dato nuovo valore
item.checkBlinkCounter(i, (uint)currStatus);
diff --git a/IOB-WIN-NEXT/IobModbusTCP.cs b/IOB-WIN-NEXT/IobModbusTCP.cs
index 725eae3e..21a5f25c 100644
--- a/IOB-WIN-NEXT/IobModbusTCP.cs
+++ b/IOB-WIN-NEXT/IobModbusTCP.cs
@@ -610,7 +610,7 @@ namespace IOB_WIN_NEXT
}
///
- /// Recupero allarmi specifico x ModbusTCP
+ /// Recupero allarmi specifico x ModbusTCP (16 e 32 bit...)
///
///
///
@@ -850,7 +850,7 @@ namespace IOB_WIN_NEXT
parametri.memSizeRead = fIni.ReadInteger("MEMORY", "SIZE_READ", 0);
parametri.memSizeWrite = fIni.ReadInteger("MEMORY", "SIZE_WRITE", 0);
parametri.holdRegBaseAddr = fIni.ReadInteger("MEMORY", "HR_BASE_ADDR", 40001);
- // valore delta base
+ // valore delta base e shift
deltaBase = fIni.ReadInteger("MEMORY", "DELTA_BASE", 0);
// salvo vettori memoria...
lgInfoStartup("Set RawInput dimensions...");
diff --git a/IOB-WIN-NEXT/IobModbusTCPHelpi.cs b/IOB-WIN-NEXT/IobModbusTCPHelpi.cs
index f9efb7c3..fdcc083e 100644
--- a/IOB-WIN-NEXT/IobModbusTCPHelpi.cs
+++ b/IOB-WIN-NEXT/IobModbusTCPHelpi.cs
@@ -1,5 +1,6 @@
using EasyModbus;
using System;
+using System.Linq;
namespace IOB_WIN_NEXT
{
@@ -105,6 +106,9 @@ namespace IOB_WIN_NEXT
{
int[] listInt = new int[2];
listInt = HoldingRegisterLUT[statusReg];
+ var dataList = listInt.ToList();
+ dataList.Reverse();
+ listInt = dataList.ToArray();
answ = ModbusClient.ConvertRegistersToInt(listInt);
}
return answ;
@@ -132,7 +136,7 @@ namespace IOB_WIN_NEXT
* B4: manuale
* B5: TC Lento
* B6: WarmUp/CoolDown
- * B7: Emergenza
+ * B7: Emergenza armata
*
----------------------------------------------------- */
@@ -146,37 +150,37 @@ namespace IOB_WIN_NEXT
}
// processo dagli stati + gravi...
- if (EStop)
+ if (!EStop)
{
byteSignals += (1 << 7);
}
- else if (hasAlarms())
+ if (hasAlarms())
{
byteSignals += (1 << 3);
}
- else
+
+ // verifico gli stati specifici x decodificare... 41108
+ switch (StatusLavoro)
{
- // verifico gli stati specifici x decodificare... 41108
- switch (StatusLavoro)
- {
- // resta FERMA (pronta)
- case 0:
- default:
- break;
+ // resta FERMA (pronta)
+ case 0:
+ default:
+ break;
- case 1:
- byteSignals += (1 << 6);
- break;
+ case 1:
+ byteSignals += (1 << 6);
+ break;
- case 2:
- case 3:
- byteSignals += (1 << 4);
- break;
+ // spostato 2 in lavora
+ //case 2:
+ case 3:
+ byteSignals += (1 << 4);
+ break;
- case 4:
- byteSignals += (1 << 1);
- break;
- }
+ case 2:
+ case 4:
+ byteSignals += (1 << 1);
+ break;
}
// salvo!