From 9269c8db4fb33687fce9cee64947467aab57dcc9 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Tue, 21 Jun 2022 16:10:36 +0200 Subject: [PATCH] Fix endianness modbus: - update MapoSDK - gestione decodifica dati modbus Array.Reverse --- IOB-WIN-NEXT/IOB-WIN-NEXT.csproj | 4 ++-- IOB-WIN-NEXT/IobModbusTCP.cs | 16 ++++++++++++++++ IOB-WIN-NEXT/packages.config | 2 +- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj b/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj index d8525b3c..0c045dcb 100644 --- a/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj +++ b/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj @@ -112,8 +112,8 @@ False ExtLib\krcc.dll - - ..\packages\MapoSDK.6.14.2205.3011\lib\MapoSDK.dll + + ..\packages\MapoSDK.6.14.2206.2116\lib\MapoSDK.dll ..\packages\MathNet.Numerics.4.15.0\lib\net461\MathNet.Numerics.dll diff --git a/IOB-WIN-NEXT/IobModbusTCP.cs b/IOB-WIN-NEXT/IobModbusTCP.cs index 2679fd03..84ac4bb9 100644 --- a/IOB-WIN-NEXT/IobModbusTCP.cs +++ b/IOB-WIN-NEXT/IobModbusTCP.cs @@ -1050,6 +1050,7 @@ namespace IOB_WIN_NEXT switch (tipoMem) { case plcDataType.Real: + case plcDataType.FloatABCD: if (size == 4) { valore = ModbusClient.ConvertRegistersToDouble(listInt); @@ -1060,6 +1061,21 @@ namespace IOB_WIN_NEXT } break; + + case plcDataType.FloatCDAB: + if (size == 4) + { + // invero array... + Array.Reverse(listInt); + valore = ModbusClient.ConvertRegistersToDouble(listInt); + } + else if (size == 2) + { + // non serve cambaire nulla... + valore = ModbusClient.ConvertRegistersToFloat(listInt); + } + break; + // caso speciale x Cedax, che usa HighVal moltiplicato x 32768... case plcDataType.HLPInt: if (size == 4) diff --git a/IOB-WIN-NEXT/packages.config b/IOB-WIN-NEXT/packages.config index a81b056b..948d84cf 100644 --- a/IOB-WIN-NEXT/packages.config +++ b/IOB-WIN-NEXT/packages.config @@ -6,7 +6,7 @@ - +