From 03dc06f2febda068dff2566a2dc4a8857e7c72a2 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Tue, 28 Sep 2021 12:30:50 +0200 Subject: [PATCH] Update x gestione limite min/max ModBus --- IOB-WIN-NEXT/IobModbusTCP.cs | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/IOB-WIN-NEXT/IobModbusTCP.cs b/IOB-WIN-NEXT/IobModbusTCP.cs index f17d7d3e..cc064762 100644 --- a/IOB-WIN-NEXT/IobModbusTCP.cs +++ b/IOB-WIN-NEXT/IobModbusTCP.cs @@ -601,11 +601,11 @@ namespace IOB_WIN_NEXT case plcDataType.Real: if (item.Value.size == 4) { - valore = ModbusClient.ConvertRegistersToDouble(listInt) * item.Value.factor; + valore = ModbusClient.ConvertRegistersToDouble(listInt); } else if (item.Value.size == 2) { - valore = ModbusClient.ConvertRegistersToFloat(listInt) * item.Value.factor; + valore = ModbusClient.ConvertRegistersToFloat(listInt); } break; @@ -613,11 +613,11 @@ namespace IOB_WIN_NEXT default: if (item.Value.size == 4) { - valore = ModbusClient.ConvertRegistersToLong(listInt) * item.Value.factor; + valore = ModbusClient.ConvertRegistersToLong(listInt); } else if (item.Value.size == 2) { - valore = ModbusClient.ConvertRegistersToInt(listInt) * item.Value.factor; + valore = ModbusClient.ConvertRegistersToInt(listInt); } break; } @@ -631,11 +631,11 @@ namespace IOB_WIN_NEXT case plcDataType.Real: if (item.Value.size == 4) { - valore = ModbusClient.ConvertRegistersToDouble(listInt) * item.Value.factor; + valore = ModbusClient.ConvertRegistersToDouble(listInt); } else if (item.Value.size == 2) { - valore = ModbusClient.ConvertRegistersToFloat(listInt) * item.Value.factor; + valore = ModbusClient.ConvertRegistersToFloat(listInt); } break; @@ -643,11 +643,11 @@ namespace IOB_WIN_NEXT default: if (item.Value.size == 4) { - valore = ModbusClient.ConvertRegistersToLong(listInt) * item.Value.factor; + valore = ModbusClient.ConvertRegistersToLong(listInt); } else if (item.Value.size == 2) { - valore = ModbusClient.ConvertRegistersToInt(listInt) * item.Value.factor; + valore = ModbusClient.ConvertRegistersToInt(listInt); } break; } @@ -656,6 +656,11 @@ namespace IOB_WIN_NEXT default: break; } + // verifica limite... + valore = (valore > item.Value.maxVal) ? item.Value.maxVal : valore; + valore = (valore < item.Value.minVal) ? item.Value.minVal : valore; + // moltiplico x fattore conversione... + valore = valore * item.Value.factor; saveValue(ref outVal, valore, item.Key); } }