From 5c385bd58e9aa788214964c679c871d1e7105ea8 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Fri, 16 Sep 2022 18:00:34 +0200 Subject: [PATCH 1/3] Fix EStop (non era negato) --- IOB-WIN-NEXT/IobModbusTCP.cs | 2 +- IOB-WIN-NEXT/IobModbusTCPHelpi.cs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/IOB-WIN-NEXT/IobModbusTCP.cs b/IOB-WIN-NEXT/IobModbusTCP.cs index 725eae3e..dc06c72c 100644 --- a/IOB-WIN-NEXT/IobModbusTCP.cs +++ b/IOB-WIN-NEXT/IobModbusTCP.cs @@ -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..8058d2f0 100644 --- a/IOB-WIN-NEXT/IobModbusTCPHelpi.cs +++ b/IOB-WIN-NEXT/IobModbusTCPHelpi.cs @@ -132,7 +132,7 @@ namespace IOB_WIN_NEXT * B4: manuale * B5: TC Lento * B6: WarmUp/CoolDown - * B7: Emergenza + * B7: Emergenza armata * ----------------------------------------------------- */ @@ -146,7 +146,7 @@ namespace IOB_WIN_NEXT } // processo dagli stati + gravi... - if (EStop) + if (!EStop) { byteSignals += (1 << 7); } From 6d31362a9c80e19a83c17b04007969882be5c549 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Mon, 19 Sep 2022 18:25:50 +0200 Subject: [PATCH 2/3] =?UTF-8?q?Update=20IOB-WIN=20Helpi:=20-=20status,=20i?= =?UTF-8?q?l=20valore=202=20come=204=20=C3=A8=20lavora?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IOB-WIN-NEXT/IobModbusTCPHelpi.cs | 44 +++++++++++++++++-------------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/IOB-WIN-NEXT/IobModbusTCPHelpi.cs b/IOB-WIN-NEXT/IobModbusTCPHelpi.cs index 8058d2f0..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; @@ -150,33 +154,33 @@ namespace IOB_WIN_NEXT { 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! From b9578f4dab6666da5eb45d7b2b74a88f4140efee Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Tue, 20 Sep 2022 11:30:29 +0200 Subject: [PATCH 3/3] Fix gestione allarmi: - update config finassi - fix check allarmi 32 bit --- .../DATA/CONF/FINASSI_HELPI_01_alarm.json | 4 +-- IOB-WIN-NEXT/IobGeneric.cs | 27 +++++-------------- IOB-WIN-NEXT/IobModbusTCP.cs | 2 +- 3 files changed, 10 insertions(+), 23 deletions(-) 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 dc06c72c..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...) /// /// ///