Merge branch 'FeatureTestRimor' into develop

This commit is contained in:
Samuele E. Locatelli
2023-03-02 07:59:24 +01:00
9 changed files with 55 additions and 67 deletions
+4 -3
View File
@@ -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]
+14 -14
View File
@@ -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": "#"
+2 -1
View File
@@ -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]
+1 -1
View File
@@ -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
+12 -4
View File
@@ -319,10 +319,18 @@
<None Include="DATA\CONF\IMI_RIMOR_SAB_02.json" />
<None Include="DATA\CONF\IMI_RIMOR_SAB_02_alarm.json" />
<None Include="DATA\CONF\IMI_RIMOR_SAB_02_MBlock.json" />
<None Include="DATA\CONF\IMI_RIMOR_SAB_01_MBlock.json" />
<None Include="DATA\CONF\IMI_RIMOR_SAB_01_alarm.json" />
<None Include="DATA\CONF\IMI_RIMOR_SAB_01.json" />
<None Include="DATA\CONF\IMI_RIMOR_SAB_01.ini" />
<None Include="DATA\CONF\IMI_RIMOR_SAB_01_MBlock.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="DATA\CONF\IMI_RIMOR_SAB_01_alarm.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="DATA\CONF\IMI_RIMOR_SAB_01.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="DATA\CONF\IMI_RIMOR_SAB_01.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Tools\ExcImport.exe">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
-24
View File
@@ -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
+16 -19
View File
@@ -575,16 +575,15 @@ namespace IOB_WIN_NEXT
/// </summary>
/// <param name="startAddr"></param>
/// <param name="currRegVal">Valore in formato INT da registri</param>
/// <param name="baseAddr">Indirizzo di base dei registri</param>
/// <returns></returns>
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;
+3
View File
@@ -20,3 +20,6 @@ Remote Machine conf:
Giacovelli:
- 192.168.1.93:4026
IMI Remosa:
- 192.168.0.12:4026
+3 -1
View File
@@ -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