diff --git a/IOB-WIN-NEXT/DATA/CONF/IMI_RIMOR_SAB_01.ini b/IOB-WIN-NEXT/DATA/CONF/IMI_RIMOR_SAB_01.ini index d119aa15..a2dcaaf0 100644 --- a/IOB-WIN-NEXT/DATA/CONF/IMI_RIMOR_SAB_01.ini +++ b/IOB-WIN-NEXT/DATA/CONF/IMI_RIMOR_SAB_01.ini @@ -24,12 +24,13 @@ CMDADV1=?valore= CMDREBO=/sendReboot.aspx?idxMacchina= [MEMORY] -ADDR_READ=400001 -ADDR_WRITE=400001 +ADDR_READ=400000 +ADDR_WRITE=400000 SIZE_READ=10 SIZE_WRITE=0 HR_BASE_ADDR=400000 -DELTA_BASE=0 +DELTA_BASE=-1 +MODBUS_EXT_REG=1 [BLINK] diff --git a/IOB-WIN-NEXT/DATA/CONF/IMI_RIMOR_SAB_01.json b/IOB-WIN-NEXT/DATA/CONF/IMI_RIMOR_SAB_01.json index 7c27e3de..6215d3ac 100644 --- a/IOB-WIN-NEXT/DATA/CONF/IMI_RIMOR_SAB_01.json +++ b/IOB-WIN-NEXT/DATA/CONF/IMI_RIMOR_SAB_01.json @@ -10,7 +10,7 @@ "size": 1, "func": "MAX", "period": 90, - "factor": 0.01, + "factor": 1, "minVal": 0, "maxVal": 999999, "unit": "h" @@ -24,7 +24,7 @@ "size": 1, "func": "MAX", "period": 90, - "factor": 0.01, + "factor": 1, "minVal": 0, "maxVal": 999999, "unit": "m" @@ -38,7 +38,7 @@ "size": 1, "func": "MAX", "period": 90, - "factor": 0.01, + "factor": 1, "minVal": 0, "maxVal": 999999, "unit": "h" @@ -52,7 +52,7 @@ "size": 1, "func": "MAX", "period": 90, - "factor": 0.01, + "factor": 1, "minVal": 0, "maxVal": 999999, "unit": "m" @@ -66,7 +66,7 @@ "size": 1, "func": "MAX", "period": 90, - "factor": 0.01, + "factor": 1, "minVal": 0, "maxVal": 999999, "unit": "h" @@ -80,7 +80,7 @@ "size": 1, "func": "MAX", "period": 90, - "factor": 0.01, + "factor": 1, "minVal": 0, "maxVal": 999999, "unit": "m" @@ -94,7 +94,7 @@ "size": 1, "func": "MAX", "period": 90, - "factor": 0.01, + "factor": 1, "minVal": 0, "maxVal": 999999, "unit": "h" @@ -108,7 +108,7 @@ "size": 1, "func": "MAX", "period": 90, - "factor": 0.01, + "factor": 1, "minVal": 0, "maxVal": 999999, "unit": "m" @@ -122,7 +122,7 @@ "size": 1, "func": "MAX", "period": 90, - "factor": 0.01, + "factor": 1, "minVal": 0, "maxVal": 999999, "unit": "h" @@ -136,7 +136,7 @@ "size": 1, "func": "MAX", "period": 90, - "factor": 0.01, + "factor": 1, "minVal": 0, "maxVal": 999999, "unit": "m" @@ -150,7 +150,7 @@ "size": 1, "func": "MAX", "period": 90, - "factor": 0.01, + "factor": 1, "minVal": 0, "maxVal": 999999, "unit": "h" @@ -164,7 +164,7 @@ "size": 1, "func": "MAX", "period": 90, - "factor": 0.01, + "factor": 1, "minVal": 0, "maxVal": 999999, "unit": "m" @@ -178,7 +178,7 @@ "size": 1, "func": "MAX", "period": 90, - "factor": 0.01, + "factor": 1, "minVal": 0, "maxVal": 999999, "unit": "h/m" @@ -192,7 +192,7 @@ "size": 1, "func": "MAX", "period": 90, - "factor": 0.01, + "factor": 1, "minVal": 0, "maxVal": 999999, "unit": "#" diff --git a/IOB-WIN-NEXT/DATA/CONF/IMI_RIMOR_SAB_02.ini b/IOB-WIN-NEXT/DATA/CONF/IMI_RIMOR_SAB_02.ini index de5bcb41..67d58f8a 100644 --- a/IOB-WIN-NEXT/DATA/CONF/IMI_RIMOR_SAB_02.ini +++ b/IOB-WIN-NEXT/DATA/CONF/IMI_RIMOR_SAB_02.ini @@ -28,8 +28,9 @@ ADDR_READ=40001 ADDR_WRITE=40001 SIZE_READ=10 SIZE_WRITE=0 -HR_BASE_ADDR=40000 +HR_BASE_ADDR=400000 DELTA_BASE=0 +MODBUS_EXT_REG=1 [BLINK] diff --git a/IOB-WIN-NEXT/DATA/CONF/MAIN.ini b/IOB-WIN-NEXT/DATA/CONF/MAIN.ini index a3829ed8..2a3720fb 100644 --- a/IOB-WIN-NEXT/DATA/CONF/MAIN.ini +++ b/IOB-WIN-NEXT/DATA/CONF/MAIN.ini @@ -46,6 +46,6 @@ CLI_INST=SteamWareSim ;STARTLIST=SIMUL_01 ;STARTLIST=GIACO_SAIM_003 ;STARTLIST=SIMUL_01 -STARTLIST=PIZ04 +STARTLIST=IMI_RIMOR_SAB_01 MAXCNC=10 \ No newline at end of file diff --git a/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj b/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj index 437695de..7a82452e 100644 --- a/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj +++ b/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj @@ -319,10 +319,18 @@ - - - - + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + Always diff --git a/IOB-WIN-NEXT/IobGeneric.cs b/IOB-WIN-NEXT/IobGeneric.cs index 7cea873d..7d9007ce 100644 --- a/IOB-WIN-NEXT/IobGeneric.cs +++ b/IOB-WIN-NEXT/IobGeneric.cs @@ -4688,30 +4688,6 @@ 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) - { - 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}"); - } - } - } - else - { - listInt = readInputReg(item.index, item.size); - } - currStatus = ModbusClient.ConvertRegistersToInt(listInt); -#endif currStatus = getAlarmStatus(item); // aggiornamento blink counters dato nuovo valore diff --git a/IOB-WIN-NEXT/IobModbusTCP.cs b/IOB-WIN-NEXT/IobModbusTCP.cs index aac887cb..3ebf13fd 100644 --- a/IOB-WIN-NEXT/IobModbusTCP.cs +++ b/IOB-WIN-NEXT/IobModbusTCP.cs @@ -575,16 +575,15 @@ namespace IOB_WIN_NEXT /// /// /// Valore in formato INT da registri - /// Indirizzo di base dei registri /// - public bool writeHoldingReg(int startAddr, int[] currRegVal, int baseAddr) + public bool writeHoldingReg(int startAddr, int[] currRegVal) { bool answ = false; if (currPLC.Connected) { try { - currPLC.WriteMultipleRegisters(startAddr + deltaBase + indexLutCorr + (40000 - baseAddr), currRegVal); + currPLC.WriteMultipleRegisters(startAddr + deltaBase + indexLutCorr, currRegVal); answ = true; } catch @@ -698,7 +697,7 @@ namespace IOB_WIN_NEXT bool useLUT = memSetR != null && memSetR.Count > 0; if (useLUT) { - int lutAddress = 40000 + item.index + deltaBase + indexLutCorr; + int lutAddress = parametri.holdRegBaseAddr + item.index + deltaBase + indexLutCorr; if (HoldingRegisterLUT.ContainsKey(lutAddress)) { try @@ -772,7 +771,7 @@ namespace IOB_WIN_NEXT CurrVal = ModbusClient.ConvertIntToRegisters(valInt); } - fatto = writeHoldingReg(currMem.index, CurrVal, parametri.holdRegBaseAddr); + fatto = writeHoldingReg(currMem.index, CurrVal); break; case plcDataType.IntLH: @@ -787,20 +786,20 @@ namespace IOB_WIN_NEXT Array.Reverse(CurrVal); } - fatto = writeHoldingReg(currMem.index, CurrVal, parametri.holdRegBaseAddr); + fatto = writeHoldingReg(currMem.index, CurrVal); break; case plcDataType.DInt: valUInt = getScaledUInt(currMem, true); CurrVal = ModbusClient.ConvertLongToRegisters(valInt); - fatto = writeHoldingReg(currMem.index, CurrVal, parametri.holdRegBaseAddr); + fatto = writeHoldingReg(currMem.index, CurrVal); break; case plcDataType.DIntLH: valUInt = getScaledUInt(currMem, true); CurrVal = ModbusClient.ConvertLongToRegisters(valInt); Array.Reverse(CurrVal); - fatto = writeHoldingReg(currMem.index, CurrVal, parametri.holdRegBaseAddr); + fatto = writeHoldingReg(currMem.index, CurrVal); break; //case plcDataType.Word: @@ -817,14 +816,14 @@ namespace IOB_WIN_NEXT case plcDataType.RealHL: valDouble = getScaledDouble(currMem); CurrVal = ModbusClient.ConvertFloatToRegisters((float)valDouble, ModbusClient.RegisterOrder.HighLow); - fatto = writeHoldingReg(currMem.index, CurrVal, parametri.holdRegBaseAddr); + fatto = writeHoldingReg(currMem.index, CurrVal); break; case plcDataType.FloatBADC: case plcDataType.RealLH: valDouble = getScaledDouble(currMem); CurrVal = ModbusClient.ConvertFloatToRegisters((float)valDouble, ModbusClient.RegisterOrder.LowHigh); - fatto = writeHoldingReg(currMem.index, CurrVal, parametri.holdRegBaseAddr); + fatto = writeHoldingReg(currMem.index, CurrVal); break; case plcDataType.String: @@ -833,7 +832,7 @@ namespace IOB_WIN_NEXT Array.Copy(regLen, 0, CurrVal, CurrVal.Length - regLen.Length, regLen.Length); //CurrVal[CurrVal.Length - 2] = regLen[1]; //CurrVal[CurrVal.Length - 1] = regLen[0]; - fatto = writeHoldingReg(currMem.index, CurrVal, parametri.holdRegBaseAddr); + fatto = writeHoldingReg(currMem.index, CurrVal); break; default: @@ -1541,7 +1540,7 @@ namespace IOB_WIN_NEXT case modBusAddrType.InputRegister: if (useLUT) { - int lutAddress = 30000 + item.Value.index + deltaBase + indexLutCorr; + int lutAddress = (parametri.holdRegBaseAddr / 4 * 3) + item.Value.index + deltaBase + indexLutCorr; // se size = 1 --> devo cambiare modo recupero if (item.Value.size == 1) { @@ -1603,14 +1602,13 @@ namespace IOB_WIN_NEXT case modBusAddrType.HoldingRegister: if (useLUT) { - int lutAddress = 40000 + item.Value.index + deltaBase + indexLutCorr; + int lutAddress = parametri.holdRegBaseAddr + item.Value.index + deltaBase + indexLutCorr; // se size = 1 --> devo cambiare modo recupero if (item.Value.size == 1) { //if (item.Value.index % 2 == 0) if (lutAddress % 2 == 0) { - //Array.Copy(HoldingRegisterLUT[lutAddress], listInt, 1); Array.Copy(HoldingRegisterLUT[lutAddress], 0, listInt, 0, 1); } else @@ -2054,7 +2052,6 @@ namespace IOB_WIN_NEXT private void readMemoryBlock(int startAddr, int numReg) { bool allOk = false; - int baseHold = deltaBase; modbusMemType currMemType = modbusMemType.NotDefined; // valori setup secondo conf memoria: memoria estesa... 0 ... xFFFF per ogni set da 100'000... int maxVal = modbusExtReg ? 65536 : 10000; @@ -2066,22 +2063,22 @@ namespace IOB_WIN_NEXT switch (currMemType) { case modbusMemType.Coil: - baseAddr = -baseHold; + baseAddr = 0 * baseMult; allOk = readMemBlockCoil(startAddr, numReg, baseAddr); break; case modbusMemType.DiscreteInput: - baseAddr = 1 * baseMult - baseHold; + baseAddr = 1 * baseMult; allOk = readMemBlockDiscreteIn(startAddr, numReg, baseAddr); break; case modbusMemType.InputRegister: - baseAddr = 3 * baseMult - baseHold; + baseAddr = 3 * baseMult; allOk = readMemBlockInputReg(startAddr, numReg, baseAddr); break; case modbusMemType.HoldingRegister: - baseAddr = 4 * baseMult - baseHold; + baseAddr = 4 * baseMult; allOk = readMemBlockHoldingReg(startAddr, numReg, baseAddr); break; diff --git a/IOB-WIN-NEXT/RemoteDebugInfo.txt b/IOB-WIN-NEXT/RemoteDebugInfo.txt index 276df6ab..5216ece9 100644 --- a/IOB-WIN-NEXT/RemoteDebugInfo.txt +++ b/IOB-WIN-NEXT/RemoteDebugInfo.txt @@ -20,3 +20,6 @@ Remote Machine conf: Giacovelli: - 192.168.1.93:4026 + + IMI Remosa: + - 192.168.0.12:4026 \ No newline at end of file diff --git a/IOB-WIN-NEXT/postBuildTgt.bat b/IOB-WIN-NEXT/postBuildTgt.bat index 64a89fd7..a5eb488c 100644 --- a/IOB-WIN-NEXT/postBuildTgt.bat +++ b/IOB-WIN-NEXT/postBuildTgt.bat @@ -61,7 +61,9 @@ REM ROBOCOPY . \\10.150.0.1\Steamware\IOB-WIN-NEXT-DEB /MIR REM Baglietto REM ROBOCOPY . \\192.168.60.15\Steamware\IOB-WIN-NEXT-DEB /MIR REM GIACOVELLI LOCOROTONDO -ROBOCOPY . \\192.168.1.93\Steamware\IOB-WIN-NEXT-DEB /MIR +REM ROBOCOPY . \\192.168.1.93\Steamware\IOB-WIN-NEXT-DEB /MIR +REM IMI Remosa +ROBOCOPY . \\192.168.0.12\Steamware\IOB-WIN-NEXT-DEB /MIR REM IOB-WIN-SIM REM ROBOCOPY . \\IOB-WIN-SIMULA\Steamware\IOB-WIN-NEXT-DEB /MIR